diff --git a/ngx_http_upload_module.c b/ngx_http_upload_module.c index 66150f0..ad04ccc 100644 --- a/ngx_http_upload_module.c +++ b/ngx_http_upload_module.c @@ -989,7 +989,11 @@ ngx_http_upload_read_event_handler(ngx_http_request_t *r) if (u->limit_rate) { remaining = ((ssize_t) r->headers_in.content_length_n) - u->received; next_buf_size = (buf_read_size > remaining) ? remaining : buf_read_size; +#if (defined freenginx && nginx_version >= 1029000) + limit = u->limit_rate * (ngx_time() - r->start_time * 1000 + 1) - (u->received + next_buf_size); +#else limit = u->limit_rate * (ngx_time() - r->start_sec + 1) - (u->received + next_buf_size); +#endif if (limit < 0) { rev->delayed = 1; ngx_add_timer(rev, (ngx_msec_t) ((limit * -1000 / u->limit_rate) + 1)); @@ -3370,7 +3374,11 @@ ngx_http_do_read_upload_client_request_body(ngx_http_request_t *r) } if (u->limit_rate) { +#if (defined freenginx && nginx_version >= 1029000) + limit = u->limit_rate * (ngx_time() - r->start_time * 1000 + 1) - u->received; +#else limit = u->limit_rate * (ngx_time() - r->start_sec + 1) - u->received; +#endif if (limit < 0) { c->read->delayed = 1;