Mercurial > hg > nginx-quic
comparison src/http/ngx_http_core_module.c @ 7504:c19ca381b2e6
Variables support in limit_rate and limit_rate_after (ticket #293).
author | Ruslan Ermilov <ru@nginx.com> |
---|---|
date | Wed, 24 Apr 2019 16:38:54 +0300 |
parents | 4f9b72a229c1 |
children | a7e8f953408e |
comparison
equal
deleted
inserted
replaced
7503:b82162b8496a | 7504:c19ca381b2e6 |
---|---|
477 NULL }, | 477 NULL }, |
478 | 478 |
479 { ngx_string("limit_rate"), | 479 { ngx_string("limit_rate"), |
480 NGX_HTTP_MAIN_CONF|NGX_HTTP_SRV_CONF|NGX_HTTP_LOC_CONF|NGX_HTTP_LIF_CONF | 480 NGX_HTTP_MAIN_CONF|NGX_HTTP_SRV_CONF|NGX_HTTP_LOC_CONF|NGX_HTTP_LIF_CONF |
481 |NGX_CONF_TAKE1, | 481 |NGX_CONF_TAKE1, |
482 ngx_conf_set_size_slot, | 482 ngx_http_set_complex_value_size_slot, |
483 NGX_HTTP_LOC_CONF_OFFSET, | 483 NGX_HTTP_LOC_CONF_OFFSET, |
484 offsetof(ngx_http_core_loc_conf_t, limit_rate), | 484 offsetof(ngx_http_core_loc_conf_t, limit_rate), |
485 NULL }, | 485 NULL }, |
486 | 486 |
487 { ngx_string("limit_rate_after"), | 487 { ngx_string("limit_rate_after"), |
488 NGX_HTTP_MAIN_CONF|NGX_HTTP_SRV_CONF|NGX_HTTP_LOC_CONF|NGX_HTTP_LIF_CONF | 488 NGX_HTTP_MAIN_CONF|NGX_HTTP_SRV_CONF|NGX_HTTP_LOC_CONF|NGX_HTTP_LIF_CONF |
489 |NGX_CONF_TAKE1, | 489 |NGX_CONF_TAKE1, |
490 ngx_conf_set_size_slot, | 490 ngx_http_set_complex_value_size_slot, |
491 NGX_HTTP_LOC_CONF_OFFSET, | 491 NGX_HTTP_LOC_CONF_OFFSET, |
492 offsetof(ngx_http_core_loc_conf_t, limit_rate_after), | 492 offsetof(ngx_http_core_loc_conf_t, limit_rate_after), |
493 NULL }, | 493 NULL }, |
494 | 494 |
495 { ngx_string("keepalive_timeout"), | 495 { ngx_string("keepalive_timeout"), |
1277 } | 1277 } |
1278 | 1278 |
1279 if (!clcf->tcp_nopush) { | 1279 if (!clcf->tcp_nopush) { |
1280 /* disable TCP_NOPUSH/TCP_CORK use */ | 1280 /* disable TCP_NOPUSH/TCP_CORK use */ |
1281 r->connection->tcp_nopush = NGX_TCP_NOPUSH_DISABLED; | 1281 r->connection->tcp_nopush = NGX_TCP_NOPUSH_DISABLED; |
1282 } | |
1283 | |
1284 if (r->limit_rate == 0) { | |
1285 r->limit_rate = clcf->limit_rate; | |
1286 } | 1282 } |
1287 | 1283 |
1288 if (clcf->handler) { | 1284 if (clcf->handler) { |
1289 r->content_handler = clcf->handler; | 1285 r->content_handler = clcf->handler; |
1290 } | 1286 } |
3385 * clcf->client_body_path = NULL; | 3381 * clcf->client_body_path = NULL; |
3386 * clcf->regex = NULL; | 3382 * clcf->regex = NULL; |
3387 * clcf->exact_match = 0; | 3383 * clcf->exact_match = 0; |
3388 * clcf->auto_redirect = 0; | 3384 * clcf->auto_redirect = 0; |
3389 * clcf->alias = 0; | 3385 * clcf->alias = 0; |
3386 * clcf->limit_rate = NULL; | |
3387 * clcf->limit_rate_after = NULL; | |
3390 * clcf->gzip_proxied = 0; | 3388 * clcf->gzip_proxied = 0; |
3391 * clcf->keepalive_disable = 0; | 3389 * clcf->keepalive_disable = 0; |
3392 */ | 3390 */ |
3393 | 3391 |
3394 clcf->client_max_body_size = NGX_CONF_UNSET; | 3392 clcf->client_max_body_size = NGX_CONF_UNSET; |
3415 clcf->tcp_nopush = NGX_CONF_UNSET; | 3413 clcf->tcp_nopush = NGX_CONF_UNSET; |
3416 clcf->tcp_nodelay = NGX_CONF_UNSET; | 3414 clcf->tcp_nodelay = NGX_CONF_UNSET; |
3417 clcf->send_timeout = NGX_CONF_UNSET_MSEC; | 3415 clcf->send_timeout = NGX_CONF_UNSET_MSEC; |
3418 clcf->send_lowat = NGX_CONF_UNSET_SIZE; | 3416 clcf->send_lowat = NGX_CONF_UNSET_SIZE; |
3419 clcf->postpone_output = NGX_CONF_UNSET_SIZE; | 3417 clcf->postpone_output = NGX_CONF_UNSET_SIZE; |
3420 clcf->limit_rate = NGX_CONF_UNSET_SIZE; | |
3421 clcf->limit_rate_after = NGX_CONF_UNSET_SIZE; | |
3422 clcf->keepalive_timeout = NGX_CONF_UNSET_MSEC; | 3418 clcf->keepalive_timeout = NGX_CONF_UNSET_MSEC; |
3423 clcf->keepalive_header = NGX_CONF_UNSET; | 3419 clcf->keepalive_header = NGX_CONF_UNSET; |
3424 clcf->keepalive_requests = NGX_CONF_UNSET_UINT; | 3420 clcf->keepalive_requests = NGX_CONF_UNSET_UINT; |
3425 clcf->lingering_close = NGX_CONF_UNSET_UINT; | 3421 clcf->lingering_close = NGX_CONF_UNSET_UINT; |
3426 clcf->lingering_time = NGX_CONF_UNSET_MSEC; | 3422 clcf->lingering_time = NGX_CONF_UNSET_MSEC; |
3645 | 3641 |
3646 ngx_conf_merge_msec_value(conf->send_timeout, prev->send_timeout, 60000); | 3642 ngx_conf_merge_msec_value(conf->send_timeout, prev->send_timeout, 60000); |
3647 ngx_conf_merge_size_value(conf->send_lowat, prev->send_lowat, 0); | 3643 ngx_conf_merge_size_value(conf->send_lowat, prev->send_lowat, 0); |
3648 ngx_conf_merge_size_value(conf->postpone_output, prev->postpone_output, | 3644 ngx_conf_merge_size_value(conf->postpone_output, prev->postpone_output, |
3649 1460); | 3645 1460); |
3650 ngx_conf_merge_size_value(conf->limit_rate, prev->limit_rate, 0); | 3646 |
3651 ngx_conf_merge_size_value(conf->limit_rate_after, prev->limit_rate_after, | 3647 if (conf->limit_rate == NULL) { |
3652 0); | 3648 conf->limit_rate = prev->limit_rate; |
3649 } | |
3650 | |
3651 if (conf->limit_rate_after == NULL) { | |
3652 conf->limit_rate_after = prev->limit_rate_after; | |
3653 } | |
3654 | |
3653 ngx_conf_merge_msec_value(conf->keepalive_timeout, | 3655 ngx_conf_merge_msec_value(conf->keepalive_timeout, |
3654 prev->keepalive_timeout, 75000); | 3656 prev->keepalive_timeout, 75000); |
3655 ngx_conf_merge_sec_value(conf->keepalive_header, | 3657 ngx_conf_merge_sec_value(conf->keepalive_header, |
3656 prev->keepalive_header, 0); | 3658 prev->keepalive_header, 0); |
3657 ngx_conf_merge_uint_value(conf->keepalive_requests, | 3659 ngx_conf_merge_uint_value(conf->keepalive_requests, |