Mercurial > hg > nginx-vendor-1-0
diff src/http/ngx_http_write_filter_module.c @ 184:71ff1e2b484a NGINX_0_3_39
nginx 0.3.39
*) Feature: the "uninitialized_variable_warn" directive; the logging
level of the "uninitialized variable" message was lowered from
"alert" to "warn".
*) Feature: the "override_charset" directive.
*) Change: now if the unknown variable is used in the "echo" and "if
expr='$name'" SSI-commands, then the "unknown variable" message is
not logged.
*) Bugfix: the active connection counter increased on the exceeding of
the connection limit specified by the "worker_connections"
directive; bug appeared in 0.2.0.
*) Bugfix: the limit rate might not work on some condition; bug
appeared in 0.3.38.
author | Igor Sysoev <http://sysoev.ru> |
---|---|
date | Mon, 17 Apr 2006 00:00:00 +0400 |
parents | 13710a1813ad |
children | 14050d2bec9b |
line wrap: on
line diff
--- a/src/http/ngx_http_write_filter_module.c +++ b/src/http/ngx_http_write_filter_module.c @@ -209,9 +209,20 @@ ngx_http_write_filter(ngx_http_request_t return NGX_ERROR; } - to_send = r->limit_rate * (ngx_time() - r->start_time + 1) - c->sent; + if (r->limit_rate) { + to_send = r->limit_rate * (ngx_time() - r->start_time + 1) - c->sent; - if (to_send < 0) { + if (to_send <= 0) { + c->write->delayed = 1; + ngx_add_timer(r->connection->write, + (ngx_msec_t) (- to_send * 1000 / r->limit_rate)); + + c->buffered |= NGX_HTTP_WRITE_BUFFERED; + + return NGX_AGAIN; + } + + } else { to_send = 0; }