comparison src/http/ngx_http_core_module.c @ 1806:ba9e6e57f65d

satisfy all|any
author Igor Sysoev <igor@sysoev.ru>
date Sat, 29 Dec 2007 16:38:23 +0000
parents d457a1576532
children e2f95fee98eb
comparison
equal deleted inserted replaced
1805:bb72f7518992 1806:ba9e6e57f65d
91 91
92 static ngx_conf_deprecated_t ngx_conf_deprecated_open_file_cache_retest = { 92 static ngx_conf_deprecated_t ngx_conf_deprecated_open_file_cache_retest = {
93 ngx_conf_deprecated, "open_file_cache_retest", "open_file_cache_valid" 93 ngx_conf_deprecated, "open_file_cache_retest", "open_file_cache_valid"
94 }; 94 };
95 95
96 static ngx_conf_deprecated_t ngx_conf_deprecated_satisfy_any = {
97 ngx_conf_deprecated, "satisfy_any", "satisfy"
98 };
99
96 100
97 static ngx_conf_enum_t ngx_http_core_request_body_in_file[] = { 101 static ngx_conf_enum_t ngx_http_core_request_body_in_file[] = {
98 { ngx_string("off"), NGX_HTTP_REQUEST_BODY_FILE_OFF }, 102 { ngx_string("off"), NGX_HTTP_REQUEST_BODY_FILE_OFF },
99 { ngx_string("on"), NGX_HTTP_REQUEST_BODY_FILE_ON }, 103 { ngx_string("on"), NGX_HTTP_REQUEST_BODY_FILE_ON },
100 { ngx_string("clean"), NGX_HTTP_REQUEST_BODY_FILE_CLEAN }, 104 { ngx_string("clean"), NGX_HTTP_REQUEST_BODY_FILE_CLEAN },
105 { ngx_null_string, 0 }
106 };
107
108
109 static ngx_conf_enum_t ngx_http_core_satisfy[] = {
110 { ngx_string("all"), NGX_HTTP_SATISFY_ALL },
111 { ngx_string("any"), NGX_HTTP_SATISFY_ANY },
101 { ngx_null_string, 0 } 112 { ngx_null_string, 0 }
102 }; 113 };
103 114
104 115
105 #if (NGX_HTTP_GZIP) 116 #if (NGX_HTTP_GZIP)
402 ngx_http_core_keepalive, 413 ngx_http_core_keepalive,
403 NGX_HTTP_LOC_CONF_OFFSET, 414 NGX_HTTP_LOC_CONF_OFFSET,
404 0, 415 0,
405 NULL }, 416 NULL },
406 417
418 { ngx_string("satisfy"),
419 NGX_HTTP_MAIN_CONF|NGX_HTTP_SRV_CONF|NGX_HTTP_LOC_CONF|NGX_CONF_TAKE1,
420 ngx_conf_set_enum_slot,
421 NGX_HTTP_LOC_CONF_OFFSET,
422 offsetof(ngx_http_core_loc_conf_t, satisfy),
423 &ngx_http_core_satisfy },
424
407 { ngx_string("satisfy_any"), 425 { ngx_string("satisfy_any"),
408 NGX_HTTP_MAIN_CONF|NGX_HTTP_SRV_CONF|NGX_HTTP_LOC_CONF|NGX_CONF_FLAG, 426 NGX_HTTP_MAIN_CONF|NGX_HTTP_SRV_CONF|NGX_HTTP_LOC_CONF|NGX_CONF_FLAG,
409 ngx_conf_set_flag_slot, 427 ngx_conf_set_flag_slot,
410 NGX_HTTP_LOC_CONF_OFFSET, 428 NGX_HTTP_LOC_CONF_OFFSET,
411 offsetof(ngx_http_core_loc_conf_t, satisfy_any), 429 offsetof(ngx_http_core_loc_conf_t, satisfy),
412 NULL }, 430 &ngx_conf_deprecated_satisfy_any },
413 431
414 { ngx_string("internal"), 432 { ngx_string("internal"),
415 NGX_HTTP_LOC_CONF|NGX_CONF_NOARGS, 433 NGX_HTTP_LOC_CONF|NGX_CONF_NOARGS,
416 ngx_http_core_internal, 434 ngx_http_core_internal,
417 NGX_HTTP_LOC_CONF_OFFSET, 435 NGX_HTTP_LOC_CONF_OFFSET,
916 return NGX_OK; 934 return NGX_OK;
917 } 935 }
918 936
919 clcf = ngx_http_get_module_loc_conf(r, ngx_http_core_module); 937 clcf = ngx_http_get_module_loc_conf(r, ngx_http_core_module);
920 938
921 if (clcf->satisfy_any == 0) { 939 if (clcf->satisfy == NGX_HTTP_SATISFY_ALL) {
922 940
923 if (rc == NGX_OK) { 941 if (rc == NGX_OK) {
924 r->phase_handler++; 942 r->phase_handler++;
925 return NGX_AGAIN; 943 return NGX_AGAIN;
926 } 944 }
2672 */ 2690 */
2673 2691
2674 lcf->client_max_body_size = NGX_CONF_UNSET; 2692 lcf->client_max_body_size = NGX_CONF_UNSET;
2675 lcf->client_body_buffer_size = NGX_CONF_UNSET_SIZE; 2693 lcf->client_body_buffer_size = NGX_CONF_UNSET_SIZE;
2676 lcf->client_body_timeout = NGX_CONF_UNSET_MSEC; 2694 lcf->client_body_timeout = NGX_CONF_UNSET_MSEC;
2677 lcf->satisfy_any = NGX_CONF_UNSET; 2695 lcf->satisfy = NGX_CONF_UNSET;
2678 lcf->internal = NGX_CONF_UNSET; 2696 lcf->internal = NGX_CONF_UNSET;
2679 lcf->client_body_in_file_only = NGX_CONF_UNSET; 2697 lcf->client_body_in_file_only = NGX_CONF_UNSET;
2680 lcf->sendfile = NGX_CONF_UNSET; 2698 lcf->sendfile = NGX_CONF_UNSET;
2681 lcf->sendfile_max_chunk = NGX_CONF_UNSET_SIZE; 2699 lcf->sendfile_max_chunk = NGX_CONF_UNSET_SIZE;
2682 lcf->tcp_nopush = NGX_CONF_UNSET; 2700 lcf->tcp_nopush = NGX_CONF_UNSET;
2857 prev->client_body_buffer_size, 2875 prev->client_body_buffer_size,
2858 (size_t) 2 * ngx_pagesize); 2876 (size_t) 2 * ngx_pagesize);
2859 ngx_conf_merge_msec_value(conf->client_body_timeout, 2877 ngx_conf_merge_msec_value(conf->client_body_timeout,
2860 prev->client_body_timeout, 60000); 2878 prev->client_body_timeout, 60000);
2861 2879
2862 ngx_conf_merge_value(conf->satisfy_any, prev->satisfy_any, 0); 2880 ngx_conf_merge_uint_value(conf->satisfy, prev->satisfy,
2881 NGX_HTTP_SATISFY_ALL);
2863 ngx_conf_merge_value(conf->internal, prev->internal, 0); 2882 ngx_conf_merge_value(conf->internal, prev->internal, 0);
2864 ngx_conf_merge_value(conf->client_body_in_file_only, 2883 ngx_conf_merge_value(conf->client_body_in_file_only,
2865 prev->client_body_in_file_only, 0); 2884 prev->client_body_in_file_only, 0);
2866 ngx_conf_merge_value(conf->sendfile, prev->sendfile, 0); 2885 ngx_conf_merge_value(conf->sendfile, prev->sendfile, 0);
2867 ngx_conf_merge_size_value(conf->sendfile_max_chunk, 2886 ngx_conf_merge_size_value(conf->sendfile_max_chunk,