Mercurial > hg > nginx-quic
comparison src/http/ngx_http_write_filter_module.c @ 5201:06fbbde04098
Added r->limit_rate_after.
As of now, it allows to better control bandwidth limiting from additional
modules. It is also expected to be used to add variables support to
the limit_rate_after directive.
author | Maxim Dounin <mdounin@mdounin.ru> |
---|---|
date | Sat, 11 May 2013 18:49:42 +0400 |
parents | ed576bd1d9c0 |
children | 311803b21504 |
comparison
equal
deleted
inserted
replaced
5200:9d83ec073c51 | 5201:06fbbde04098 |
---|---|
205 | 205 |
206 return NGX_ERROR; | 206 return NGX_ERROR; |
207 } | 207 } |
208 | 208 |
209 if (r->limit_rate) { | 209 if (r->limit_rate) { |
210 if (r->limit_rate_after == 0) { | |
211 r->limit_rate_after = clcf->limit_rate_after; | |
212 } | |
213 | |
210 limit = (off_t) r->limit_rate * (ngx_time() - r->start_sec + 1) | 214 limit = (off_t) r->limit_rate * (ngx_time() - r->start_sec + 1) |
211 - (c->sent - clcf->limit_rate_after); | 215 - (c->sent - r->limit_rate_after); |
212 | 216 |
213 if (limit <= 0) { | 217 if (limit <= 0) { |
214 c->write->delayed = 1; | 218 c->write->delayed = 1; |
215 ngx_add_timer(c->write, | 219 ngx_add_timer(c->write, |
216 (ngx_msec_t) (- limit * 1000 / r->limit_rate + 1)); | 220 (ngx_msec_t) (- limit * 1000 / r->limit_rate + 1)); |
247 | 251 |
248 if (r->limit_rate) { | 252 if (r->limit_rate) { |
249 | 253 |
250 nsent = c->sent; | 254 nsent = c->sent; |
251 | 255 |
252 if (clcf->limit_rate_after) { | 256 if (r->limit_rate_after) { |
253 | 257 |
254 sent -= clcf->limit_rate_after; | 258 sent -= r->limit_rate_after; |
255 if (sent < 0) { | 259 if (sent < 0) { |
256 sent = 0; | 260 sent = 0; |
257 } | 261 } |
258 | 262 |
259 nsent -= clcf->limit_rate_after; | 263 nsent -= r->limit_rate_after; |
260 if (nsent < 0) { | 264 if (nsent < 0) { |
261 nsent = 0; | 265 nsent = 0; |
262 } | 266 } |
263 } | 267 } |
264 | 268 |