Mercurial > hg > nginx-quic
view src/http/ngx_http_spdy_module.h @ 5938:cd2abf7e7740
Upstream: fixed unexpected inheritance into limit_except blocks.
The proxy_pass directive and other handlers are not expected to be inherited
into nested locations, but there is a special code to inherit upstream
handlers into limit_except blocks, as well as a configuration into if{}
blocks. This caused incorrect behaviour in configurations with nested
locations and limit_except blocks, like this:
location / {
proxy_pass http://u;
location /inner/ {
# no proxy_pass here
limit_except GET {
# nothing
}
}
}
In such a configuration the limit_except block inside "location /inner/"
unexpectedly used proxy_pass defined in "location /", while it shouldn't.
Fix is to avoid inheritance of conf->upstream.upstream (and
conf->proxy_lengths) into locations which don't have noname flag.
author | Maxim Dounin <mdounin@mdounin.ru> |
---|---|
date | Tue, 09 Dec 2014 18:22:31 +0300 |
parents | e5fb14e85040 |
children |
line wrap: on
line source
/* * Copyright (C) Nginx, Inc. * Copyright (C) Valentin V. Bartenev */ #ifndef _NGX_HTTP_SPDY_MODULE_H_INCLUDED_ #define _NGX_HTTP_SPDY_MODULE_H_INCLUDED_ #include <ngx_config.h> #include <ngx_core.h> #include <ngx_http.h> typedef struct { size_t recv_buffer_size; u_char *recv_buffer; } ngx_http_spdy_main_conf_t; typedef struct { size_t pool_size; ngx_uint_t concurrent_streams; ngx_uint_t streams_index_mask; ngx_msec_t recv_timeout; ngx_msec_t keepalive_timeout; ngx_int_t headers_comp; } ngx_http_spdy_srv_conf_t; typedef struct { size_t chunk_size; } ngx_http_spdy_loc_conf_t; extern ngx_module_t ngx_http_spdy_module; #endif /* _NGX_HTTP_SPDY_MODULE_H_INCLUDED_ */