mirror of
https://github.com/nginx/nginx.git
synced 2025-06-13 06:12:44 +08:00
Upstream: simplified proxy_store and friends configuration code.
This changes internal API related to handling of the "store" flag in ngx_http_upstream_conf_t. Previously, a non-null value of "store_lengths" was enough to enable store functionality with custom path. Now, the "store" flag is also required to be set. No functional changes.
This commit is contained in:
parent
cf92831131
commit
492844dbb1
@ -2436,10 +2436,8 @@ ngx_http_fastcgi_merge_loc_conf(ngx_conf_t *cf, void *parent, void *child)
|
|||||||
ngx_conf_merge_value(conf->upstream.store,
|
ngx_conf_merge_value(conf->upstream.store,
|
||||||
prev->upstream.store, 0);
|
prev->upstream.store, 0);
|
||||||
|
|
||||||
if (conf->upstream.store_lengths == NULL) {
|
conf->upstream.store_lengths = prev->upstream.store_lengths;
|
||||||
conf->upstream.store_lengths = prev->upstream.store_lengths;
|
conf->upstream.store_values = prev->upstream.store_values;
|
||||||
conf->upstream.store_values = prev->upstream.store_values;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
ngx_conf_merge_uint_value(conf->upstream.store_access,
|
ngx_conf_merge_uint_value(conf->upstream.store_access,
|
||||||
@ -3206,9 +3204,7 @@ ngx_http_fastcgi_store(ngx_conf_t *cf, ngx_command_t *cmd, void *conf)
|
|||||||
ngx_str_t *value;
|
ngx_str_t *value;
|
||||||
ngx_http_script_compile_t sc;
|
ngx_http_script_compile_t sc;
|
||||||
|
|
||||||
if (flcf->upstream.store != NGX_CONF_UNSET
|
if (flcf->upstream.store != NGX_CONF_UNSET) {
|
||||||
|| flcf->upstream.store_lengths)
|
|
||||||
{
|
|
||||||
return "is duplicate";
|
return "is duplicate";
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -3229,8 +3225,9 @@ ngx_http_fastcgi_store(ngx_conf_t *cf, ngx_command_t *cmd, void *conf)
|
|||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
flcf->upstream.store = 1;
|
||||||
|
|
||||||
if (ngx_strcmp(value[1].data, "on") == 0) {
|
if (ngx_strcmp(value[1].data, "on") == 0) {
|
||||||
flcf->upstream.store = 1;
|
|
||||||
return NGX_CONF_OK;
|
return NGX_CONF_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -3275,7 +3272,7 @@ ngx_http_fastcgi_cache(ngx_conf_t *cf, ngx_command_t *cmd, void *conf)
|
|||||||
return NGX_CONF_OK;
|
return NGX_CONF_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (flcf->upstream.store > 0 || flcf->upstream.store_lengths) {
|
if (flcf->upstream.store > 0) {
|
||||||
return "is incompatible with \"fastcgi_store\"";
|
return "is incompatible with \"fastcgi_store\"";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -2628,10 +2628,8 @@ ngx_http_proxy_merge_loc_conf(ngx_conf_t *cf, void *parent, void *child)
|
|||||||
ngx_conf_merge_value(conf->upstream.store,
|
ngx_conf_merge_value(conf->upstream.store,
|
||||||
prev->upstream.store, 0);
|
prev->upstream.store, 0);
|
||||||
|
|
||||||
if (conf->upstream.store_lengths == NULL) {
|
conf->upstream.store_lengths = prev->upstream.store_lengths;
|
||||||
conf->upstream.store_lengths = prev->upstream.store_lengths;
|
conf->upstream.store_values = prev->upstream.store_values;
|
||||||
conf->upstream.store_values = prev->upstream.store_values;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
ngx_conf_merge_uint_value(conf->upstream.store_access,
|
ngx_conf_merge_uint_value(conf->upstream.store_access,
|
||||||
@ -3794,9 +3792,7 @@ ngx_http_proxy_store(ngx_conf_t *cf, ngx_command_t *cmd, void *conf)
|
|||||||
ngx_str_t *value;
|
ngx_str_t *value;
|
||||||
ngx_http_script_compile_t sc;
|
ngx_http_script_compile_t sc;
|
||||||
|
|
||||||
if (plcf->upstream.store != NGX_CONF_UNSET
|
if (plcf->upstream.store != NGX_CONF_UNSET) {
|
||||||
|| plcf->upstream.store_lengths)
|
|
||||||
{
|
|
||||||
return "is duplicate";
|
return "is duplicate";
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -3817,8 +3813,9 @@ ngx_http_proxy_store(ngx_conf_t *cf, ngx_command_t *cmd, void *conf)
|
|||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
plcf->upstream.store = 1;
|
||||||
|
|
||||||
if (ngx_strcmp(value[1].data, "on") == 0) {
|
if (ngx_strcmp(value[1].data, "on") == 0) {
|
||||||
plcf->upstream.store = 1;
|
|
||||||
return NGX_CONF_OK;
|
return NGX_CONF_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -3863,7 +3860,7 @@ ngx_http_proxy_cache(ngx_conf_t *cf, ngx_command_t *cmd, void *conf)
|
|||||||
return NGX_CONF_OK;
|
return NGX_CONF_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (plcf->upstream.store > 0 || plcf->upstream.store_lengths) {
|
if (plcf->upstream.store > 0) {
|
||||||
return "is incompatible with \"proxy_store\"";
|
return "is incompatible with \"proxy_store\"";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1189,10 +1189,8 @@ ngx_http_scgi_merge_loc_conf(ngx_conf_t *cf, void *parent, void *child)
|
|||||||
if (conf->upstream.store == NGX_CONF_UNSET) {
|
if (conf->upstream.store == NGX_CONF_UNSET) {
|
||||||
ngx_conf_merge_value(conf->upstream.store, prev->upstream.store, 0);
|
ngx_conf_merge_value(conf->upstream.store, prev->upstream.store, 0);
|
||||||
|
|
||||||
if (conf->upstream.store_lengths == NULL) {
|
conf->upstream.store_lengths = prev->upstream.store_lengths;
|
||||||
conf->upstream.store_lengths = prev->upstream.store_lengths;
|
conf->upstream.store_values = prev->upstream.store_values;
|
||||||
conf->upstream.store_values = prev->upstream.store_values;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
ngx_conf_merge_uint_value(conf->upstream.store_access,
|
ngx_conf_merge_uint_value(conf->upstream.store_access,
|
||||||
@ -1760,7 +1758,7 @@ ngx_http_scgi_store(ngx_conf_t *cf, ngx_command_t *cmd, void *conf)
|
|||||||
ngx_str_t *value;
|
ngx_str_t *value;
|
||||||
ngx_http_script_compile_t sc;
|
ngx_http_script_compile_t sc;
|
||||||
|
|
||||||
if (scf->upstream.store != NGX_CONF_UNSET || scf->upstream.store_lengths) {
|
if (scf->upstream.store != NGX_CONF_UNSET) {
|
||||||
return "is duplicate";
|
return "is duplicate";
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1781,8 +1779,9 @@ ngx_http_scgi_store(ngx_conf_t *cf, ngx_command_t *cmd, void *conf)
|
|||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
scf->upstream.store = 1;
|
||||||
|
|
||||||
if (ngx_strcmp(value[1].data, "on") == 0) {
|
if (ngx_strcmp(value[1].data, "on") == 0) {
|
||||||
scf->upstream.store = 1;
|
|
||||||
return NGX_CONF_OK;
|
return NGX_CONF_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1827,7 +1826,7 @@ ngx_http_scgi_cache(ngx_conf_t *cf, ngx_command_t *cmd, void *conf)
|
|||||||
return NGX_CONF_OK;
|
return NGX_CONF_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (scf->upstream.store > 0 || scf->upstream.store_lengths) {
|
if (scf->upstream.store > 0) {
|
||||||
return "is incompatible with \"scgi_store\"";
|
return "is incompatible with \"scgi_store\"";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1403,10 +1403,8 @@ ngx_http_uwsgi_merge_loc_conf(ngx_conf_t *cf, void *parent, void *child)
|
|||||||
if (conf->upstream.store == NGX_CONF_UNSET) {
|
if (conf->upstream.store == NGX_CONF_UNSET) {
|
||||||
ngx_conf_merge_value(conf->upstream.store, prev->upstream.store, 0);
|
ngx_conf_merge_value(conf->upstream.store, prev->upstream.store, 0);
|
||||||
|
|
||||||
if (conf->upstream.store_lengths == NULL) {
|
conf->upstream.store_lengths = prev->upstream.store_lengths;
|
||||||
conf->upstream.store_lengths = prev->upstream.store_lengths;
|
conf->upstream.store_values = prev->upstream.store_values;
|
||||||
conf->upstream.store_values = prev->upstream.store_values;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
ngx_conf_merge_uint_value(conf->upstream.store_access,
|
ngx_conf_merge_uint_value(conf->upstream.store_access,
|
||||||
@ -2047,8 +2045,7 @@ ngx_http_uwsgi_store(ngx_conf_t *cf, ngx_command_t *cmd, void *conf)
|
|||||||
ngx_str_t *value;
|
ngx_str_t *value;
|
||||||
ngx_http_script_compile_t sc;
|
ngx_http_script_compile_t sc;
|
||||||
|
|
||||||
if (uwcf->upstream.store != NGX_CONF_UNSET || uwcf->upstream.store_lengths)
|
if (uwcf->upstream.store != NGX_CONF_UNSET) {
|
||||||
{
|
|
||||||
return "is duplicate";
|
return "is duplicate";
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -2069,8 +2066,9 @@ ngx_http_uwsgi_store(ngx_conf_t *cf, ngx_command_t *cmd, void *conf)
|
|||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
uwcf->upstream.store = 1;
|
||||||
|
|
||||||
if (ngx_strcmp(value[1].data, "on") == 0) {
|
if (ngx_strcmp(value[1].data, "on") == 0) {
|
||||||
uwcf->upstream.store = 1;
|
|
||||||
return NGX_CONF_OK;
|
return NGX_CONF_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -2115,7 +2113,7 @@ ngx_http_uwsgi_cache(ngx_conf_t *cf, ngx_command_t *cmd, void *conf)
|
|||||||
return NGX_CONF_OK;
|
return NGX_CONF_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (uwcf->upstream.store > 0 || uwcf->upstream.store_lengths) {
|
if (uwcf->upstream.store > 0) {
|
||||||
return "is incompatible with \"uwsgi_store\"";
|
return "is incompatible with \"uwsgi_store\"";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -540,7 +540,7 @@ ngx_http_upstream_init_request(ngx_http_request_t *r)
|
|||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
u->store = (u->conf->store || u->conf->store_lengths);
|
u->store = u->conf->store;
|
||||||
|
|
||||||
if (!u->store && !r->post_action && !u->conf->ignore_client_abort) {
|
if (!u->store && !r->post_action && !u->conf->ignore_client_abort) {
|
||||||
r->read_event_handler = ngx_http_upstream_rd_check_broken_connection;
|
r->read_event_handler = ngx_http_upstream_rd_check_broken_connection;
|
||||||
|
Loading…
Reference in New Issue
Block a user