Mercurial > hg > nginx
annotate src/http/modules/ngx_http_uwsgi_module.c @ 6927:c36d160cd4e0
Access log: removed dead ev->timedout check in flush timer handler.
The ev->timedout flag is set on first timer expiration, and never reset
after it. Due to this the code to stop the timer when the timer was
canceled never worked (except in a very specific time frame immediately
after start), and the timer was always armed again. This essentially
resulted in a buffer flush at the end of an event loop iteration.
This behaviour actually seems to be better than just stopping the flush
timer for the whole shutdown, so it is preserved as is instead of fixing
the code to actually remove the timer. It will be further improved by
upcoming changes to preserve cancelable timers if there are other timers
blocking shutdown.
author | Maxim Dounin <mdounin@mdounin.ru> |
---|---|
date | Tue, 07 Mar 2017 18:51:12 +0300 |
parents | 1aeaae6e9446 |
children | fa56ab75cffc |
rev | line source |
---|---|
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
1 |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
2 /* |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
3 * Copyright (C) Unbit S.a.s. 2009-2010 |
3544 | 4 * Copyright (C) 2008 Manlio Perillo (manlio.perillo@gmail.com) |
5 * Copyright (C) Igor Sysoev | |
4412 | 6 * Copyright (C) Nginx, Inc. |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
7 */ |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
8 |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
9 |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
10 #include <ngx_config.h> |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
11 #include <ngx_core.h> |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
12 #include <ngx_http.h> |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
13 |
3543
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
14 |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
15 typedef struct { |
5951
610832763648
Upstream: added variables support to proxy_cache and friends.
Valentin Bartenev <vbart@nginx.com>
parents:
5949
diff
changeset
|
16 ngx_array_t caches; /* ngx_http_file_cache_t * */ |
610832763648
Upstream: added variables support to proxy_cache and friends.
Valentin Bartenev <vbart@nginx.com>
parents:
5949
diff
changeset
|
17 } ngx_http_uwsgi_main_conf_t; |
610832763648
Upstream: added variables support to proxy_cache and friends.
Valentin Bartenev <vbart@nginx.com>
parents:
5949
diff
changeset
|
18 |
610832763648
Upstream: added variables support to proxy_cache and friends.
Valentin Bartenev <vbart@nginx.com>
parents:
5949
diff
changeset
|
19 |
610832763648
Upstream: added variables support to proxy_cache and friends.
Valentin Bartenev <vbart@nginx.com>
parents:
5949
diff
changeset
|
20 typedef struct { |
5908
f8e80f8c7fc7
Upstream: moved header lists to separate structures.
Roman Arutyunyan <arut@nginx.com>
parents:
5907
diff
changeset
|
21 ngx_array_t *flushes; |
f8e80f8c7fc7
Upstream: moved header lists to separate structures.
Roman Arutyunyan <arut@nginx.com>
parents:
5907
diff
changeset
|
22 ngx_array_t *lengths; |
f8e80f8c7fc7
Upstream: moved header lists to separate structures.
Roman Arutyunyan <arut@nginx.com>
parents:
5907
diff
changeset
|
23 ngx_array_t *values; |
f8e80f8c7fc7
Upstream: moved header lists to separate structures.
Roman Arutyunyan <arut@nginx.com>
parents:
5907
diff
changeset
|
24 ngx_uint_t number; |
f8e80f8c7fc7
Upstream: moved header lists to separate structures.
Roman Arutyunyan <arut@nginx.com>
parents:
5907
diff
changeset
|
25 ngx_hash_t hash; |
f8e80f8c7fc7
Upstream: moved header lists to separate structures.
Roman Arutyunyan <arut@nginx.com>
parents:
5907
diff
changeset
|
26 } ngx_http_uwsgi_params_t; |
f8e80f8c7fc7
Upstream: moved header lists to separate structures.
Roman Arutyunyan <arut@nginx.com>
parents:
5907
diff
changeset
|
27 |
f8e80f8c7fc7
Upstream: moved header lists to separate structures.
Roman Arutyunyan <arut@nginx.com>
parents:
5907
diff
changeset
|
28 |
f8e80f8c7fc7
Upstream: moved header lists to separate structures.
Roman Arutyunyan <arut@nginx.com>
parents:
5907
diff
changeset
|
29 typedef struct { |
3543
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
30 ngx_http_upstream_conf_t upstream; |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
31 |
5908
f8e80f8c7fc7
Upstream: moved header lists to separate structures.
Roman Arutyunyan <arut@nginx.com>
parents:
5907
diff
changeset
|
32 ngx_http_uwsgi_params_t params; |
5909
8d0cf26ce071
Upstream: different header lists for cached and uncached requests.
Roman Arutyunyan <arut@nginx.com>
parents:
5908
diff
changeset
|
33 #if (NGX_HTTP_CACHE) |
8d0cf26ce071
Upstream: different header lists for cached and uncached requests.
Roman Arutyunyan <arut@nginx.com>
parents:
5908
diff
changeset
|
34 ngx_http_uwsgi_params_t params_cache; |
8d0cf26ce071
Upstream: different header lists for cached and uncached requests.
Roman Arutyunyan <arut@nginx.com>
parents:
5908
diff
changeset
|
35 #endif |
3543
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
36 ngx_array_t *params_source; |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
37 |
3543
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
38 ngx_array_t *uwsgi_lengths; |
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
39 ngx_array_t *uwsgi_values; |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
40 |
3568 | 41 #if (NGX_HTTP_CACHE) |
42 ngx_http_complex_value_t cache_key; | |
43 #endif | |
44 | |
3550 | 45 ngx_str_t uwsgi_string; |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
46 |
3552
40eba0271b1d
improve uwsgi_modifierX processing:
Igor Sysoev <igor@sysoev.ru>
parents:
3551
diff
changeset
|
47 ngx_uint_t modifier1; |
40eba0271b1d
improve uwsgi_modifierX processing:
Igor Sysoev <igor@sysoev.ru>
parents:
3551
diff
changeset
|
48 ngx_uint_t modifier2; |
5457
c82b2e020b9f
SSL support in the uwsgi module.
Maxim Dounin <mdounin@mdounin.ru>
parents:
5451
diff
changeset
|
49 |
c82b2e020b9f
SSL support in the uwsgi module.
Maxim Dounin <mdounin@mdounin.ru>
parents:
5451
diff
changeset
|
50 #if (NGX_HTTP_SSL) |
c82b2e020b9f
SSL support in the uwsgi module.
Maxim Dounin <mdounin@mdounin.ru>
parents:
5451
diff
changeset
|
51 ngx_uint_t ssl; |
c82b2e020b9f
SSL support in the uwsgi module.
Maxim Dounin <mdounin@mdounin.ru>
parents:
5451
diff
changeset
|
52 ngx_uint_t ssl_protocols; |
c82b2e020b9f
SSL support in the uwsgi module.
Maxim Dounin <mdounin@mdounin.ru>
parents:
5451
diff
changeset
|
53 ngx_str_t ssl_ciphers; |
5662
3cb79707516a
Upstream: uwsgi_ssl_name, uwsgi_ssl_verify, and so on.
Maxim Dounin <mdounin@mdounin.ru>
parents:
5659
diff
changeset
|
54 ngx_uint_t ssl_verify_depth; |
3cb79707516a
Upstream: uwsgi_ssl_name, uwsgi_ssl_verify, and so on.
Maxim Dounin <mdounin@mdounin.ru>
parents:
5659
diff
changeset
|
55 ngx_str_t ssl_trusted_certificate; |
3cb79707516a
Upstream: uwsgi_ssl_name, uwsgi_ssl_verify, and so on.
Maxim Dounin <mdounin@mdounin.ru>
parents:
5659
diff
changeset
|
56 ngx_str_t ssl_crl; |
5900
20d966ad5e89
Upstream: add "proxy_ssl_certificate" and friends.
Piotr Sikora <piotr@cloudflare.com>
parents:
5883
diff
changeset
|
57 ngx_str_t ssl_certificate; |
20d966ad5e89
Upstream: add "proxy_ssl_certificate" and friends.
Piotr Sikora <piotr@cloudflare.com>
parents:
5883
diff
changeset
|
58 ngx_str_t ssl_certificate_key; |
20d966ad5e89
Upstream: add "proxy_ssl_certificate" and friends.
Piotr Sikora <piotr@cloudflare.com>
parents:
5883
diff
changeset
|
59 ngx_array_t *ssl_passwords; |
5457
c82b2e020b9f
SSL support in the uwsgi module.
Maxim Dounin <mdounin@mdounin.ru>
parents:
5451
diff
changeset
|
60 #endif |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
61 } ngx_http_uwsgi_loc_conf_t; |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
62 |
3556 | 63 |
3543
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
64 static ngx_int_t ngx_http_uwsgi_eval(ngx_http_request_t *r, |
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
65 ngx_http_uwsgi_loc_conf_t *uwcf); |
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
66 static ngx_int_t ngx_http_uwsgi_create_request(ngx_http_request_t *r); |
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
67 static ngx_int_t ngx_http_uwsgi_reinit_request(ngx_http_request_t *r); |
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
68 static ngx_int_t ngx_http_uwsgi_process_status_line(ngx_http_request_t *r); |
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
69 static ngx_int_t ngx_http_uwsgi_process_header(ngx_http_request_t *r); |
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
70 static void ngx_http_uwsgi_abort_request(ngx_http_request_t *r); |
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
71 static void ngx_http_uwsgi_finalize_request(ngx_http_request_t *r, |
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
72 ngx_int_t rc); |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
73 |
5951
610832763648
Upstream: added variables support to proxy_cache and friends.
Valentin Bartenev <vbart@nginx.com>
parents:
5949
diff
changeset
|
74 static void *ngx_http_uwsgi_create_main_conf(ngx_conf_t *cf); |
3543
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
75 static void *ngx_http_uwsgi_create_loc_conf(ngx_conf_t *cf); |
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
76 static char *ngx_http_uwsgi_merge_loc_conf(ngx_conf_t *cf, void *parent, |
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
77 void *child); |
5907
195561ef367f
Upstream: moved header initializations to separate functions.
Roman Arutyunyan <arut@nginx.com>
parents:
5905
diff
changeset
|
78 static ngx_int_t ngx_http_uwsgi_init_params(ngx_conf_t *cf, |
5909
8d0cf26ce071
Upstream: different header lists for cached and uncached requests.
Roman Arutyunyan <arut@nginx.com>
parents:
5908
diff
changeset
|
79 ngx_http_uwsgi_loc_conf_t *conf, ngx_http_uwsgi_params_t *params, |
8d0cf26ce071
Upstream: different header lists for cached and uncached requests.
Roman Arutyunyan <arut@nginx.com>
parents:
5908
diff
changeset
|
80 ngx_keyval_t *default_params); |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
81 |
3543
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
82 static char *ngx_http_uwsgi_pass(ngx_conf_t *cf, ngx_command_t *cmd, |
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
83 void *conf); |
3565 | 84 static char *ngx_http_uwsgi_store(ngx_conf_t *cf, ngx_command_t *cmd, |
85 void *conf); | |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
86 |
3568 | 87 #if (NGX_HTTP_CACHE) |
88 static ngx_int_t ngx_http_uwsgi_create_key(ngx_http_request_t *r); | |
89 static char *ngx_http_uwsgi_cache(ngx_conf_t *cf, ngx_command_t *cmd, | |
90 void *conf); | |
91 static char *ngx_http_uwsgi_cache_key(ngx_conf_t *cf, ngx_command_t *cmd, | |
92 void *conf); | |
93 #endif | |
94 | |
5457
c82b2e020b9f
SSL support in the uwsgi module.
Maxim Dounin <mdounin@mdounin.ru>
parents:
5451
diff
changeset
|
95 #if (NGX_HTTP_SSL) |
5900
20d966ad5e89
Upstream: add "proxy_ssl_certificate" and friends.
Piotr Sikora <piotr@cloudflare.com>
parents:
5883
diff
changeset
|
96 static char *ngx_http_uwsgi_ssl_password_file(ngx_conf_t *cf, |
20d966ad5e89
Upstream: add "proxy_ssl_certificate" and friends.
Piotr Sikora <piotr@cloudflare.com>
parents:
5883
diff
changeset
|
97 ngx_command_t *cmd, void *conf); |
5457
c82b2e020b9f
SSL support in the uwsgi module.
Maxim Dounin <mdounin@mdounin.ru>
parents:
5451
diff
changeset
|
98 static ngx_int_t ngx_http_uwsgi_set_ssl(ngx_conf_t *cf, |
c82b2e020b9f
SSL support in the uwsgi module.
Maxim Dounin <mdounin@mdounin.ru>
parents:
5451
diff
changeset
|
99 ngx_http_uwsgi_loc_conf_t *uwcf); |
c82b2e020b9f
SSL support in the uwsgi module.
Maxim Dounin <mdounin@mdounin.ru>
parents:
5451
diff
changeset
|
100 #endif |
c82b2e020b9f
SSL support in the uwsgi module.
Maxim Dounin <mdounin@mdounin.ru>
parents:
5451
diff
changeset
|
101 |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
102 |
3552
40eba0271b1d
improve uwsgi_modifierX processing:
Igor Sysoev <igor@sysoev.ru>
parents:
3551
diff
changeset
|
103 static ngx_conf_num_bounds_t ngx_http_uwsgi_modifier_bounds = { |
40eba0271b1d
improve uwsgi_modifierX processing:
Igor Sysoev <igor@sysoev.ru>
parents:
3551
diff
changeset
|
104 ngx_conf_check_num_bounds, 0, 255 |
40eba0271b1d
improve uwsgi_modifierX processing:
Igor Sysoev <igor@sysoev.ru>
parents:
3551
diff
changeset
|
105 }; |
40eba0271b1d
improve uwsgi_modifierX processing:
Igor Sysoev <igor@sysoev.ru>
parents:
3551
diff
changeset
|
106 |
40eba0271b1d
improve uwsgi_modifierX processing:
Igor Sysoev <igor@sysoev.ru>
parents:
3551
diff
changeset
|
107 |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
108 static ngx_conf_bitmask_t ngx_http_uwsgi_next_upstream_masks[] = { |
3543
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
109 { ngx_string("error"), NGX_HTTP_UPSTREAM_FT_ERROR }, |
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
110 { ngx_string("timeout"), NGX_HTTP_UPSTREAM_FT_TIMEOUT }, |
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
111 { ngx_string("invalid_header"), NGX_HTTP_UPSTREAM_FT_INVALID_HEADER }, |
6467
91c8d990fb45
Upstream: proxy_next_upstream non_idempotent.
Maxim Dounin <mdounin@mdounin.ru>
parents:
6303
diff
changeset
|
112 { ngx_string("non_idempotent"), NGX_HTTP_UPSTREAM_FT_NON_IDEMPOTENT }, |
3543
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
113 { ngx_string("http_500"), NGX_HTTP_UPSTREAM_FT_HTTP_500 }, |
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
114 { ngx_string("http_503"), NGX_HTTP_UPSTREAM_FT_HTTP_503 }, |
5231
05c53652e7b4
Upstream: http_403 support in proxy_next_upstream (and friends).
Maxim Dounin <mdounin@mdounin.ru>
parents:
5080
diff
changeset
|
115 { ngx_string("http_403"), NGX_HTTP_UPSTREAM_FT_HTTP_403 }, |
3543
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
116 { ngx_string("http_404"), NGX_HTTP_UPSTREAM_FT_HTTP_404 }, |
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
117 { ngx_string("updating"), NGX_HTTP_UPSTREAM_FT_UPDATING }, |
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
118 { ngx_string("off"), NGX_HTTP_UPSTREAM_FT_OFF }, |
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
119 { ngx_null_string, 0 } |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
120 }; |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
121 |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
122 |
5457
c82b2e020b9f
SSL support in the uwsgi module.
Maxim Dounin <mdounin@mdounin.ru>
parents:
5451
diff
changeset
|
123 #if (NGX_HTTP_SSL) |
c82b2e020b9f
SSL support in the uwsgi module.
Maxim Dounin <mdounin@mdounin.ru>
parents:
5451
diff
changeset
|
124 |
c82b2e020b9f
SSL support in the uwsgi module.
Maxim Dounin <mdounin@mdounin.ru>
parents:
5451
diff
changeset
|
125 static ngx_conf_bitmask_t ngx_http_uwsgi_ssl_protocols[] = { |
c82b2e020b9f
SSL support in the uwsgi module.
Maxim Dounin <mdounin@mdounin.ru>
parents:
5451
diff
changeset
|
126 { ngx_string("SSLv2"), NGX_SSL_SSLv2 }, |
c82b2e020b9f
SSL support in the uwsgi module.
Maxim Dounin <mdounin@mdounin.ru>
parents:
5451
diff
changeset
|
127 { ngx_string("SSLv3"), NGX_SSL_SSLv3 }, |
c82b2e020b9f
SSL support in the uwsgi module.
Maxim Dounin <mdounin@mdounin.ru>
parents:
5451
diff
changeset
|
128 { ngx_string("TLSv1"), NGX_SSL_TLSv1 }, |
c82b2e020b9f
SSL support in the uwsgi module.
Maxim Dounin <mdounin@mdounin.ru>
parents:
5451
diff
changeset
|
129 { ngx_string("TLSv1.1"), NGX_SSL_TLSv1_1 }, |
c82b2e020b9f
SSL support in the uwsgi module.
Maxim Dounin <mdounin@mdounin.ru>
parents:
5451
diff
changeset
|
130 { ngx_string("TLSv1.2"), NGX_SSL_TLSv1_2 }, |
c82b2e020b9f
SSL support in the uwsgi module.
Maxim Dounin <mdounin@mdounin.ru>
parents:
5451
diff
changeset
|
131 { ngx_null_string, 0 } |
c82b2e020b9f
SSL support in the uwsgi module.
Maxim Dounin <mdounin@mdounin.ru>
parents:
5451
diff
changeset
|
132 }; |
c82b2e020b9f
SSL support in the uwsgi module.
Maxim Dounin <mdounin@mdounin.ru>
parents:
5451
diff
changeset
|
133 |
c82b2e020b9f
SSL support in the uwsgi module.
Maxim Dounin <mdounin@mdounin.ru>
parents:
5451
diff
changeset
|
134 #endif |
c82b2e020b9f
SSL support in the uwsgi module.
Maxim Dounin <mdounin@mdounin.ru>
parents:
5451
diff
changeset
|
135 |
c82b2e020b9f
SSL support in the uwsgi module.
Maxim Dounin <mdounin@mdounin.ru>
parents:
5451
diff
changeset
|
136 |
3568 | 137 ngx_module_t ngx_http_uwsgi_module; |
138 | |
139 | |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
140 static ngx_command_t ngx_http_uwsgi_commands[] = { |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
141 |
3543
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
142 { ngx_string("uwsgi_pass"), |
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
143 NGX_HTTP_LOC_CONF|NGX_HTTP_LIF_CONF|NGX_CONF_TAKE1, |
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
144 ngx_http_uwsgi_pass, |
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
145 NGX_HTTP_LOC_CONF_OFFSET, |
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
146 0, |
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
147 NULL }, |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
148 |
3543
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
149 { ngx_string("uwsgi_modifier1"), |
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
150 NGX_HTTP_MAIN_CONF|NGX_HTTP_SRV_CONF|NGX_HTTP_LOC_CONF|NGX_CONF_TAKE1, |
3552
40eba0271b1d
improve uwsgi_modifierX processing:
Igor Sysoev <igor@sysoev.ru>
parents:
3551
diff
changeset
|
151 ngx_conf_set_num_slot, |
3543
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
152 NGX_HTTP_LOC_CONF_OFFSET, |
3552
40eba0271b1d
improve uwsgi_modifierX processing:
Igor Sysoev <igor@sysoev.ru>
parents:
3551
diff
changeset
|
153 offsetof(ngx_http_uwsgi_loc_conf_t, modifier1), |
40eba0271b1d
improve uwsgi_modifierX processing:
Igor Sysoev <igor@sysoev.ru>
parents:
3551
diff
changeset
|
154 &ngx_http_uwsgi_modifier_bounds }, |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
155 |
3543
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
156 { ngx_string("uwsgi_modifier2"), |
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
157 NGX_HTTP_MAIN_CONF|NGX_HTTP_SRV_CONF|NGX_HTTP_LOC_CONF|NGX_CONF_TAKE1, |
3552
40eba0271b1d
improve uwsgi_modifierX processing:
Igor Sysoev <igor@sysoev.ru>
parents:
3551
diff
changeset
|
158 ngx_conf_set_num_slot, |
3543
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
159 NGX_HTTP_LOC_CONF_OFFSET, |
3552
40eba0271b1d
improve uwsgi_modifierX processing:
Igor Sysoev <igor@sysoev.ru>
parents:
3551
diff
changeset
|
160 offsetof(ngx_http_uwsgi_loc_conf_t, modifier2), |
40eba0271b1d
improve uwsgi_modifierX processing:
Igor Sysoev <igor@sysoev.ru>
parents:
3551
diff
changeset
|
161 &ngx_http_uwsgi_modifier_bounds }, |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
162 |
3565 | 163 { ngx_string("uwsgi_store"), |
164 NGX_HTTP_MAIN_CONF|NGX_HTTP_SRV_CONF|NGX_HTTP_LOC_CONF|NGX_CONF_TAKE1, | |
165 ngx_http_uwsgi_store, | |
166 NGX_HTTP_LOC_CONF_OFFSET, | |
167 0, | |
168 NULL }, | |
169 | |
170 { ngx_string("uwsgi_store_access"), | |
171 NGX_HTTP_MAIN_CONF|NGX_HTTP_SRV_CONF|NGX_HTTP_LOC_CONF|NGX_CONF_TAKE123, | |
172 ngx_conf_set_access_slot, | |
173 NGX_HTTP_LOC_CONF_OFFSET, | |
174 offsetof(ngx_http_uwsgi_loc_conf_t, upstream.store_access), | |
175 NULL }, | |
176 | |
4157
9d59a8eda373
Added uwsgi_buffering and scgi_buffering directives.
Maxim Dounin <mdounin@mdounin.ru>
parents:
4015
diff
changeset
|
177 { ngx_string("uwsgi_buffering"), |
9d59a8eda373
Added uwsgi_buffering and scgi_buffering directives.
Maxim Dounin <mdounin@mdounin.ru>
parents:
4015
diff
changeset
|
178 NGX_HTTP_MAIN_CONF|NGX_HTTP_SRV_CONF|NGX_HTTP_LOC_CONF|NGX_CONF_FLAG, |
9d59a8eda373
Added uwsgi_buffering and scgi_buffering directives.
Maxim Dounin <mdounin@mdounin.ru>
parents:
4015
diff
changeset
|
179 ngx_conf_set_flag_slot, |
9d59a8eda373
Added uwsgi_buffering and scgi_buffering directives.
Maxim Dounin <mdounin@mdounin.ru>
parents:
4015
diff
changeset
|
180 NGX_HTTP_LOC_CONF_OFFSET, |
9d59a8eda373
Added uwsgi_buffering and scgi_buffering directives.
Maxim Dounin <mdounin@mdounin.ru>
parents:
4015
diff
changeset
|
181 offsetof(ngx_http_uwsgi_loc_conf_t, upstream.buffering), |
9d59a8eda373
Added uwsgi_buffering and scgi_buffering directives.
Maxim Dounin <mdounin@mdounin.ru>
parents:
4015
diff
changeset
|
182 NULL }, |
9d59a8eda373
Added uwsgi_buffering and scgi_buffering directives.
Maxim Dounin <mdounin@mdounin.ru>
parents:
4015
diff
changeset
|
183 |
6053
b6eb6ec4fbd9
Upstream: uwsgi_request_buffering, scgi_request_buffering.
Maxim Dounin <mdounin@mdounin.ru>
parents:
5951
diff
changeset
|
184 { ngx_string("uwsgi_request_buffering"), |
b6eb6ec4fbd9
Upstream: uwsgi_request_buffering, scgi_request_buffering.
Maxim Dounin <mdounin@mdounin.ru>
parents:
5951
diff
changeset
|
185 NGX_HTTP_MAIN_CONF|NGX_HTTP_SRV_CONF|NGX_HTTP_LOC_CONF|NGX_CONF_FLAG, |
b6eb6ec4fbd9
Upstream: uwsgi_request_buffering, scgi_request_buffering.
Maxim Dounin <mdounin@mdounin.ru>
parents:
5951
diff
changeset
|
186 ngx_conf_set_flag_slot, |
b6eb6ec4fbd9
Upstream: uwsgi_request_buffering, scgi_request_buffering.
Maxim Dounin <mdounin@mdounin.ru>
parents:
5951
diff
changeset
|
187 NGX_HTTP_LOC_CONF_OFFSET, |
b6eb6ec4fbd9
Upstream: uwsgi_request_buffering, scgi_request_buffering.
Maxim Dounin <mdounin@mdounin.ru>
parents:
5951
diff
changeset
|
188 offsetof(ngx_http_uwsgi_loc_conf_t, upstream.request_buffering), |
b6eb6ec4fbd9
Upstream: uwsgi_request_buffering, scgi_request_buffering.
Maxim Dounin <mdounin@mdounin.ru>
parents:
5951
diff
changeset
|
189 NULL }, |
b6eb6ec4fbd9
Upstream: uwsgi_request_buffering, scgi_request_buffering.
Maxim Dounin <mdounin@mdounin.ru>
parents:
5951
diff
changeset
|
190 |
3543
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
191 { ngx_string("uwsgi_ignore_client_abort"), |
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
192 NGX_HTTP_MAIN_CONF|NGX_HTTP_SRV_CONF|NGX_HTTP_LOC_CONF|NGX_CONF_FLAG, |
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
193 ngx_conf_set_flag_slot, |
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
194 NGX_HTTP_LOC_CONF_OFFSET, |
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
195 offsetof(ngx_http_uwsgi_loc_conf_t, upstream.ignore_client_abort), |
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
196 NULL }, |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
197 |
3567 | 198 { ngx_string("uwsgi_bind"), |
6530
1d0e03db9f8e
Upstream: the "transparent" parameter of proxy_bind and friends.
Roman Arutyunyan <arut@nginx.com>
parents:
6467
diff
changeset
|
199 NGX_HTTP_MAIN_CONF|NGX_HTTP_SRV_CONF|NGX_HTTP_LOC_CONF|NGX_CONF_TAKE12, |
3567 | 200 ngx_http_upstream_bind_set_slot, |
201 NGX_HTTP_LOC_CONF_OFFSET, | |
202 offsetof(ngx_http_uwsgi_loc_conf_t, upstream.local), | |
203 NULL }, | |
204 | |
3543
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
205 { ngx_string("uwsgi_connect_timeout"), |
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
206 NGX_HTTP_MAIN_CONF|NGX_HTTP_SRV_CONF|NGX_HTTP_LOC_CONF|NGX_CONF_TAKE1, |
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
207 ngx_conf_set_msec_slot, |
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
208 NGX_HTTP_LOC_CONF_OFFSET, |
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
209 offsetof(ngx_http_uwsgi_loc_conf_t, upstream.connect_timeout), |
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
210 NULL }, |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
211 |
3543
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
212 { ngx_string("uwsgi_send_timeout"), |
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
213 NGX_HTTP_MAIN_CONF|NGX_HTTP_SRV_CONF|NGX_HTTP_LOC_CONF|NGX_CONF_TAKE1, |
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
214 ngx_conf_set_msec_slot, |
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
215 NGX_HTTP_LOC_CONF_OFFSET, |
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
216 offsetof(ngx_http_uwsgi_loc_conf_t, upstream.send_timeout), |
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
217 NULL }, |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
218 |
3543
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
219 { ngx_string("uwsgi_buffer_size"), |
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
220 NGX_HTTP_MAIN_CONF|NGX_HTTP_SRV_CONF|NGX_HTTP_LOC_CONF|NGX_CONF_TAKE1, |
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
221 ngx_conf_set_size_slot, |
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
222 NGX_HTTP_LOC_CONF_OFFSET, |
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
223 offsetof(ngx_http_uwsgi_loc_conf_t, upstream.buffer_size), |
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
224 NULL }, |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
225 |
3543
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
226 { ngx_string("uwsgi_pass_request_headers"), |
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
227 NGX_HTTP_MAIN_CONF|NGX_HTTP_SRV_CONF|NGX_HTTP_LOC_CONF|NGX_CONF_FLAG, |
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
228 ngx_conf_set_flag_slot, |
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
229 NGX_HTTP_LOC_CONF_OFFSET, |
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
230 offsetof(ngx_http_uwsgi_loc_conf_t, upstream.pass_request_headers), |
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
231 NULL }, |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
232 |
3543
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
233 { ngx_string("uwsgi_pass_request_body"), |
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
234 NGX_HTTP_MAIN_CONF|NGX_HTTP_SRV_CONF|NGX_HTTP_LOC_CONF|NGX_CONF_FLAG, |
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
235 ngx_conf_set_flag_slot, |
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
236 NGX_HTTP_LOC_CONF_OFFSET, |
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
237 offsetof(ngx_http_uwsgi_loc_conf_t, upstream.pass_request_body), |
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
238 NULL }, |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
239 |
3543
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
240 { ngx_string("uwsgi_intercept_errors"), |
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
241 NGX_HTTP_MAIN_CONF|NGX_HTTP_SRV_CONF|NGX_HTTP_LOC_CONF|NGX_CONF_FLAG, |
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
242 ngx_conf_set_flag_slot, |
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
243 NGX_HTTP_LOC_CONF_OFFSET, |
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
244 offsetof(ngx_http_uwsgi_loc_conf_t, upstream.intercept_errors), |
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
245 NULL }, |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
246 |
3543
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
247 { ngx_string("uwsgi_read_timeout"), |
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
248 NGX_HTTP_MAIN_CONF|NGX_HTTP_SRV_CONF|NGX_HTTP_LOC_CONF|NGX_CONF_TAKE1, |
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
249 ngx_conf_set_msec_slot, |
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
250 NGX_HTTP_LOC_CONF_OFFSET, |
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
251 offsetof(ngx_http_uwsgi_loc_conf_t, upstream.read_timeout), |
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
252 NULL }, |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
253 |
3543
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
254 { ngx_string("uwsgi_buffers"), |
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
255 NGX_HTTP_MAIN_CONF|NGX_HTTP_SRV_CONF|NGX_HTTP_LOC_CONF|NGX_CONF_TAKE2, |
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
256 ngx_conf_set_bufs_slot, |
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
257 NGX_HTTP_LOC_CONF_OFFSET, |
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
258 offsetof(ngx_http_uwsgi_loc_conf_t, upstream.bufs), |
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
259 NULL }, |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
260 |
3543
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
261 { ngx_string("uwsgi_busy_buffers_size"), |
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
262 NGX_HTTP_MAIN_CONF|NGX_HTTP_SRV_CONF|NGX_HTTP_LOC_CONF|NGX_CONF_TAKE1, |
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
263 ngx_conf_set_size_slot, |
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
264 NGX_HTTP_LOC_CONF_OFFSET, |
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
265 offsetof(ngx_http_uwsgi_loc_conf_t, upstream.busy_buffers_size_conf), |
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
266 NULL }, |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
267 |
5874
2aff40b3dea2
Upstream: proxy_force_ranges and friends.
Roman Arutyunyan <arut@nginx.com>
parents:
5832
diff
changeset
|
268 { ngx_string("uwsgi_force_ranges"), |
2aff40b3dea2
Upstream: proxy_force_ranges and friends.
Roman Arutyunyan <arut@nginx.com>
parents:
5832
diff
changeset
|
269 NGX_HTTP_MAIN_CONF|NGX_HTTP_SRV_CONF|NGX_HTTP_LOC_CONF|NGX_CONF_FLAG, |
2aff40b3dea2
Upstream: proxy_force_ranges and friends.
Roman Arutyunyan <arut@nginx.com>
parents:
5832
diff
changeset
|
270 ngx_conf_set_flag_slot, |
2aff40b3dea2
Upstream: proxy_force_ranges and friends.
Roman Arutyunyan <arut@nginx.com>
parents:
5832
diff
changeset
|
271 NGX_HTTP_LOC_CONF_OFFSET, |
2aff40b3dea2
Upstream: proxy_force_ranges and friends.
Roman Arutyunyan <arut@nginx.com>
parents:
5832
diff
changeset
|
272 offsetof(ngx_http_uwsgi_loc_conf_t, upstream.force_ranges), |
2aff40b3dea2
Upstream: proxy_force_ranges and friends.
Roman Arutyunyan <arut@nginx.com>
parents:
5832
diff
changeset
|
273 NULL }, |
2aff40b3dea2
Upstream: proxy_force_ranges and friends.
Roman Arutyunyan <arut@nginx.com>
parents:
5832
diff
changeset
|
274 |
5883
973ee2276300
Upstream: proxy_limit_rate and friends.
Roman Arutyunyan <arut@nginx.com>
parents:
5874
diff
changeset
|
275 { ngx_string("uwsgi_limit_rate"), |
973ee2276300
Upstream: proxy_limit_rate and friends.
Roman Arutyunyan <arut@nginx.com>
parents:
5874
diff
changeset
|
276 NGX_HTTP_MAIN_CONF|NGX_HTTP_SRV_CONF|NGX_HTTP_LOC_CONF|NGX_CONF_TAKE1, |
973ee2276300
Upstream: proxy_limit_rate and friends.
Roman Arutyunyan <arut@nginx.com>
parents:
5874
diff
changeset
|
277 ngx_conf_set_size_slot, |
973ee2276300
Upstream: proxy_limit_rate and friends.
Roman Arutyunyan <arut@nginx.com>
parents:
5874
diff
changeset
|
278 NGX_HTTP_LOC_CONF_OFFSET, |
973ee2276300
Upstream: proxy_limit_rate and friends.
Roman Arutyunyan <arut@nginx.com>
parents:
5874
diff
changeset
|
279 offsetof(ngx_http_uwsgi_loc_conf_t, upstream.limit_rate), |
973ee2276300
Upstream: proxy_limit_rate and friends.
Roman Arutyunyan <arut@nginx.com>
parents:
5874
diff
changeset
|
280 NULL }, |
973ee2276300
Upstream: proxy_limit_rate and friends.
Roman Arutyunyan <arut@nginx.com>
parents:
5874
diff
changeset
|
281 |
3568 | 282 #if (NGX_HTTP_CACHE) |
283 | |
284 { ngx_string("uwsgi_cache"), | |
3729 | 285 NGX_HTTP_MAIN_CONF|NGX_HTTP_SRV_CONF|NGX_HTTP_LOC_CONF|NGX_CONF_TAKE1, |
3568 | 286 ngx_http_uwsgi_cache, |
287 NGX_HTTP_LOC_CONF_OFFSET, | |
288 0, | |
289 NULL }, | |
290 | |
291 { ngx_string("uwsgi_cache_key"), | |
3729 | 292 NGX_HTTP_MAIN_CONF|NGX_HTTP_SRV_CONF|NGX_HTTP_LOC_CONF|NGX_CONF_TAKE1, |
3568 | 293 ngx_http_uwsgi_cache_key, |
294 NGX_HTTP_LOC_CONF_OFFSET, | |
295 0, | |
296 NULL }, | |
297 | |
298 { ngx_string("uwsgi_cache_path"), | |
299 NGX_HTTP_MAIN_CONF|NGX_CONF_2MORE, | |
300 ngx_http_file_cache_set_slot, | |
5951
610832763648
Upstream: added variables support to proxy_cache and friends.
Valentin Bartenev <vbart@nginx.com>
parents:
5949
diff
changeset
|
301 NGX_HTTP_MAIN_CONF_OFFSET, |
610832763648
Upstream: added variables support to proxy_cache and friends.
Valentin Bartenev <vbart@nginx.com>
parents:
5949
diff
changeset
|
302 offsetof(ngx_http_uwsgi_main_conf_t, caches), |
3568 | 303 &ngx_http_uwsgi_module }, |
304 | |
3699
b0a0686a85bb
proxy_cache_pass, fastcgi_cache_bypass, uwsgi_cache_bypass, scgi_cache_bypass
Igor Sysoev <igor@sysoev.ru>
parents:
3693
diff
changeset
|
305 { ngx_string("uwsgi_cache_bypass"), |
b0a0686a85bb
proxy_cache_pass, fastcgi_cache_bypass, uwsgi_cache_bypass, scgi_cache_bypass
Igor Sysoev <igor@sysoev.ru>
parents:
3693
diff
changeset
|
306 NGX_HTTP_MAIN_CONF|NGX_HTTP_SRV_CONF|NGX_HTTP_LOC_CONF|NGX_CONF_1MORE, |
b0a0686a85bb
proxy_cache_pass, fastcgi_cache_bypass, uwsgi_cache_bypass, scgi_cache_bypass
Igor Sysoev <igor@sysoev.ru>
parents:
3693
diff
changeset
|
307 ngx_http_set_predicate_slot, |
b0a0686a85bb
proxy_cache_pass, fastcgi_cache_bypass, uwsgi_cache_bypass, scgi_cache_bypass
Igor Sysoev <igor@sysoev.ru>
parents:
3693
diff
changeset
|
308 NGX_HTTP_LOC_CONF_OFFSET, |
b0a0686a85bb
proxy_cache_pass, fastcgi_cache_bypass, uwsgi_cache_bypass, scgi_cache_bypass
Igor Sysoev <igor@sysoev.ru>
parents:
3693
diff
changeset
|
309 offsetof(ngx_http_uwsgi_loc_conf_t, upstream.cache_bypass), |
b0a0686a85bb
proxy_cache_pass, fastcgi_cache_bypass, uwsgi_cache_bypass, scgi_cache_bypass
Igor Sysoev <igor@sysoev.ru>
parents:
3693
diff
changeset
|
310 NULL }, |
b0a0686a85bb
proxy_cache_pass, fastcgi_cache_bypass, uwsgi_cache_bypass, scgi_cache_bypass
Igor Sysoev <igor@sysoev.ru>
parents:
3693
diff
changeset
|
311 |
3568 | 312 { ngx_string("uwsgi_no_cache"), |
313 NGX_HTTP_MAIN_CONF|NGX_HTTP_SRV_CONF|NGX_HTTP_LOC_CONF|NGX_CONF_1MORE, | |
3692
045ea40cbfe8
use ngx_http_test_predicates(), ngx_http_set_predicate_slot()
Igor Sysoev <igor@sysoev.ru>
parents:
3670
diff
changeset
|
314 ngx_http_set_predicate_slot, |
3568 | 315 NGX_HTTP_LOC_CONF_OFFSET, |
316 offsetof(ngx_http_uwsgi_loc_conf_t, upstream.no_cache), | |
317 NULL }, | |
318 | |
319 { ngx_string("uwsgi_cache_valid"), | |
320 NGX_HTTP_MAIN_CONF|NGX_HTTP_SRV_CONF|NGX_HTTP_LOC_CONF|NGX_CONF_1MORE, | |
321 ngx_http_file_cache_valid_set_slot, | |
322 NGX_HTTP_LOC_CONF_OFFSET, | |
323 offsetof(ngx_http_uwsgi_loc_conf_t, upstream.cache_valid), | |
324 NULL }, | |
325 | |
326 { ngx_string("uwsgi_cache_min_uses"), | |
327 NGX_HTTP_MAIN_CONF|NGX_HTTP_SRV_CONF|NGX_HTTP_LOC_CONF|NGX_CONF_TAKE1, | |
328 ngx_conf_set_num_slot, | |
329 NGX_HTTP_LOC_CONF_OFFSET, | |
330 offsetof(ngx_http_uwsgi_loc_conf_t, upstream.cache_min_uses), | |
331 NULL }, | |
332 | |
6793
0fba3ed4e7eb
Cache: proxy_cache_max_range_offset and friends.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
6785
diff
changeset
|
333 { ngx_string("uwsgi_cache_max_range_offset"), |
0fba3ed4e7eb
Cache: proxy_cache_max_range_offset and friends.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
6785
diff
changeset
|
334 NGX_HTTP_MAIN_CONF|NGX_HTTP_SRV_CONF|NGX_HTTP_LOC_CONF|NGX_CONF_TAKE1, |
0fba3ed4e7eb
Cache: proxy_cache_max_range_offset and friends.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
6785
diff
changeset
|
335 ngx_conf_set_off_slot, |
0fba3ed4e7eb
Cache: proxy_cache_max_range_offset and friends.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
6785
diff
changeset
|
336 NGX_HTTP_LOC_CONF_OFFSET, |
0fba3ed4e7eb
Cache: proxy_cache_max_range_offset and friends.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
6785
diff
changeset
|
337 offsetof(ngx_http_uwsgi_loc_conf_t, upstream.cache_max_range_offset), |
0fba3ed4e7eb
Cache: proxy_cache_max_range_offset and friends.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
6785
diff
changeset
|
338 NULL }, |
0fba3ed4e7eb
Cache: proxy_cache_max_range_offset and friends.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
6785
diff
changeset
|
339 |
3568 | 340 { ngx_string("uwsgi_cache_use_stale"), |
341 NGX_HTTP_MAIN_CONF|NGX_HTTP_SRV_CONF|NGX_HTTP_LOC_CONF|NGX_CONF_1MORE, | |
342 ngx_conf_set_bitmask_slot, | |
343 NGX_HTTP_LOC_CONF_OFFSET, | |
344 offsetof(ngx_http_uwsgi_loc_conf_t, upstream.cache_use_stale), | |
345 &ngx_http_uwsgi_next_upstream_masks }, | |
346 | |
347 { ngx_string("uwsgi_cache_methods"), | |
348 NGX_HTTP_MAIN_CONF|NGX_HTTP_SRV_CONF|NGX_HTTP_LOC_CONF|NGX_CONF_1MORE, | |
349 ngx_conf_set_bitmask_slot, | |
350 NGX_HTTP_LOC_CONF_OFFSET, | |
351 offsetof(ngx_http_uwsgi_loc_conf_t, upstream.cache_methods), | |
352 &ngx_http_upstream_cache_method_mask }, | |
353 | |
4386
92deb73393f7
Cache lock support for fastcgi, scgi, uwsgi.
Maxim Dounin <mdounin@mdounin.ru>
parents:
4330
diff
changeset
|
354 { ngx_string("uwsgi_cache_lock"), |
92deb73393f7
Cache lock support for fastcgi, scgi, uwsgi.
Maxim Dounin <mdounin@mdounin.ru>
parents:
4330
diff
changeset
|
355 NGX_HTTP_MAIN_CONF|NGX_HTTP_SRV_CONF|NGX_HTTP_LOC_CONF|NGX_CONF_FLAG, |
92deb73393f7
Cache lock support for fastcgi, scgi, uwsgi.
Maxim Dounin <mdounin@mdounin.ru>
parents:
4330
diff
changeset
|
356 ngx_conf_set_flag_slot, |
92deb73393f7
Cache lock support for fastcgi, scgi, uwsgi.
Maxim Dounin <mdounin@mdounin.ru>
parents:
4330
diff
changeset
|
357 NGX_HTTP_LOC_CONF_OFFSET, |
92deb73393f7
Cache lock support for fastcgi, scgi, uwsgi.
Maxim Dounin <mdounin@mdounin.ru>
parents:
4330
diff
changeset
|
358 offsetof(ngx_http_uwsgi_loc_conf_t, upstream.cache_lock), |
92deb73393f7
Cache lock support for fastcgi, scgi, uwsgi.
Maxim Dounin <mdounin@mdounin.ru>
parents:
4330
diff
changeset
|
359 NULL }, |
92deb73393f7
Cache lock support for fastcgi, scgi, uwsgi.
Maxim Dounin <mdounin@mdounin.ru>
parents:
4330
diff
changeset
|
360 |
92deb73393f7
Cache lock support for fastcgi, scgi, uwsgi.
Maxim Dounin <mdounin@mdounin.ru>
parents:
4330
diff
changeset
|
361 { ngx_string("uwsgi_cache_lock_timeout"), |
92deb73393f7
Cache lock support for fastcgi, scgi, uwsgi.
Maxim Dounin <mdounin@mdounin.ru>
parents:
4330
diff
changeset
|
362 NGX_HTTP_MAIN_CONF|NGX_HTTP_SRV_CONF|NGX_HTTP_LOC_CONF|NGX_CONF_TAKE1, |
92deb73393f7
Cache lock support for fastcgi, scgi, uwsgi.
Maxim Dounin <mdounin@mdounin.ru>
parents:
4330
diff
changeset
|
363 ngx_conf_set_msec_slot, |
92deb73393f7
Cache lock support for fastcgi, scgi, uwsgi.
Maxim Dounin <mdounin@mdounin.ru>
parents:
4330
diff
changeset
|
364 NGX_HTTP_LOC_CONF_OFFSET, |
92deb73393f7
Cache lock support for fastcgi, scgi, uwsgi.
Maxim Dounin <mdounin@mdounin.ru>
parents:
4330
diff
changeset
|
365 offsetof(ngx_http_uwsgi_loc_conf_t, upstream.cache_lock_timeout), |
92deb73393f7
Cache lock support for fastcgi, scgi, uwsgi.
Maxim Dounin <mdounin@mdounin.ru>
parents:
4330
diff
changeset
|
366 NULL }, |
92deb73393f7
Cache lock support for fastcgi, scgi, uwsgi.
Maxim Dounin <mdounin@mdounin.ru>
parents:
4330
diff
changeset
|
367 |
5905
2f7e557eab5b
Cache: proxy_cache_lock_age and friends.
Roman Arutyunyan <arut@nginx.com>
parents:
5900
diff
changeset
|
368 { ngx_string("uwsgi_cache_lock_age"), |
2f7e557eab5b
Cache: proxy_cache_lock_age and friends.
Roman Arutyunyan <arut@nginx.com>
parents:
5900
diff
changeset
|
369 NGX_HTTP_MAIN_CONF|NGX_HTTP_SRV_CONF|NGX_HTTP_LOC_CONF|NGX_CONF_TAKE1, |
2f7e557eab5b
Cache: proxy_cache_lock_age and friends.
Roman Arutyunyan <arut@nginx.com>
parents:
5900
diff
changeset
|
370 ngx_conf_set_msec_slot, |
2f7e557eab5b
Cache: proxy_cache_lock_age and friends.
Roman Arutyunyan <arut@nginx.com>
parents:
5900
diff
changeset
|
371 NGX_HTTP_LOC_CONF_OFFSET, |
2f7e557eab5b
Cache: proxy_cache_lock_age and friends.
Roman Arutyunyan <arut@nginx.com>
parents:
5900
diff
changeset
|
372 offsetof(ngx_http_uwsgi_loc_conf_t, upstream.cache_lock_age), |
2f7e557eab5b
Cache: proxy_cache_lock_age and friends.
Roman Arutyunyan <arut@nginx.com>
parents:
5900
diff
changeset
|
373 NULL }, |
2f7e557eab5b
Cache: proxy_cache_lock_age and friends.
Roman Arutyunyan <arut@nginx.com>
parents:
5900
diff
changeset
|
374 |
5441
43ccaf8e8728
Upstream: cache revalidation with conditional requests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
5393
diff
changeset
|
375 { ngx_string("uwsgi_cache_revalidate"), |
43ccaf8e8728
Upstream: cache revalidation with conditional requests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
5393
diff
changeset
|
376 NGX_HTTP_MAIN_CONF|NGX_HTTP_SRV_CONF|NGX_HTTP_LOC_CONF|NGX_CONF_FLAG, |
43ccaf8e8728
Upstream: cache revalidation with conditional requests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
5393
diff
changeset
|
377 ngx_conf_set_flag_slot, |
43ccaf8e8728
Upstream: cache revalidation with conditional requests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
5393
diff
changeset
|
378 NGX_HTTP_LOC_CONF_OFFSET, |
43ccaf8e8728
Upstream: cache revalidation with conditional requests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
5393
diff
changeset
|
379 offsetof(ngx_http_uwsgi_loc_conf_t, upstream.cache_revalidate), |
43ccaf8e8728
Upstream: cache revalidation with conditional requests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
5393
diff
changeset
|
380 NULL }, |
43ccaf8e8728
Upstream: cache revalidation with conditional requests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
5393
diff
changeset
|
381 |
6906
1aeaae6e9446
Upstream: proxy_cache_background_update and friends.
Roman Arutyunyan <arut@nginx.com>
parents:
6793
diff
changeset
|
382 { ngx_string("uwsgi_cache_background_update"), |
1aeaae6e9446
Upstream: proxy_cache_background_update and friends.
Roman Arutyunyan <arut@nginx.com>
parents:
6793
diff
changeset
|
383 NGX_HTTP_MAIN_CONF|NGX_HTTP_SRV_CONF|NGX_HTTP_LOC_CONF|NGX_CONF_TAKE1, |
1aeaae6e9446
Upstream: proxy_cache_background_update and friends.
Roman Arutyunyan <arut@nginx.com>
parents:
6793
diff
changeset
|
384 ngx_conf_set_flag_slot, |
1aeaae6e9446
Upstream: proxy_cache_background_update and friends.
Roman Arutyunyan <arut@nginx.com>
parents:
6793
diff
changeset
|
385 NGX_HTTP_LOC_CONF_OFFSET, |
1aeaae6e9446
Upstream: proxy_cache_background_update and friends.
Roman Arutyunyan <arut@nginx.com>
parents:
6793
diff
changeset
|
386 offsetof(ngx_http_uwsgi_loc_conf_t, upstream.cache_background_update), |
1aeaae6e9446
Upstream: proxy_cache_background_update and friends.
Roman Arutyunyan <arut@nginx.com>
parents:
6793
diff
changeset
|
387 NULL }, |
1aeaae6e9446
Upstream: proxy_cache_background_update and friends.
Roman Arutyunyan <arut@nginx.com>
parents:
6793
diff
changeset
|
388 |
3568 | 389 #endif |
390 | |
3543
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
391 { ngx_string("uwsgi_temp_path"), |
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
392 NGX_HTTP_MAIN_CONF|NGX_HTTP_SRV_CONF|NGX_HTTP_LOC_CONF|NGX_CONF_TAKE1234, |
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
393 ngx_conf_set_path_slot, |
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
394 NGX_HTTP_LOC_CONF_OFFSET, |
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
395 offsetof(ngx_http_uwsgi_loc_conf_t, upstream.temp_path), |
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
396 NULL }, |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
397 |
3543
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
398 { ngx_string("uwsgi_max_temp_file_size"), |
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
399 NGX_HTTP_MAIN_CONF|NGX_HTTP_SRV_CONF|NGX_HTTP_LOC_CONF|NGX_CONF_TAKE1, |
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
400 ngx_conf_set_size_slot, |
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
401 NGX_HTTP_LOC_CONF_OFFSET, |
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
402 offsetof(ngx_http_uwsgi_loc_conf_t, upstream.max_temp_file_size_conf), |
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
403 NULL }, |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
404 |
3543
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
405 { ngx_string("uwsgi_temp_file_write_size"), |
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
406 NGX_HTTP_MAIN_CONF|NGX_HTTP_SRV_CONF|NGX_HTTP_LOC_CONF|NGX_CONF_TAKE1, |
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
407 ngx_conf_set_size_slot, |
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
408 NGX_HTTP_LOC_CONF_OFFSET, |
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
409 offsetof(ngx_http_uwsgi_loc_conf_t, upstream.temp_file_write_size_conf), |
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
410 NULL }, |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
411 |
3543
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
412 { ngx_string("uwsgi_next_upstream"), |
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
413 NGX_HTTP_MAIN_CONF|NGX_HTTP_SRV_CONF|NGX_HTTP_LOC_CONF|NGX_CONF_1MORE, |
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
414 ngx_conf_set_bitmask_slot, |
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
415 NGX_HTTP_LOC_CONF_OFFSET, |
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
416 offsetof(ngx_http_uwsgi_loc_conf_t, upstream.next_upstream), |
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
417 &ngx_http_uwsgi_next_upstream_masks }, |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
418 |
5832
d09b689911ac
Upstream: limited next_upstream time and tries (ticket #544).
Roman Arutyunyan <arut@nginx.com>
parents:
5829
diff
changeset
|
419 { ngx_string("uwsgi_next_upstream_tries"), |
d09b689911ac
Upstream: limited next_upstream time and tries (ticket #544).
Roman Arutyunyan <arut@nginx.com>
parents:
5829
diff
changeset
|
420 NGX_HTTP_MAIN_CONF|NGX_HTTP_SRV_CONF|NGX_HTTP_LOC_CONF|NGX_CONF_TAKE1, |
d09b689911ac
Upstream: limited next_upstream time and tries (ticket #544).
Roman Arutyunyan <arut@nginx.com>
parents:
5829
diff
changeset
|
421 ngx_conf_set_num_slot, |
d09b689911ac
Upstream: limited next_upstream time and tries (ticket #544).
Roman Arutyunyan <arut@nginx.com>
parents:
5829
diff
changeset
|
422 NGX_HTTP_LOC_CONF_OFFSET, |
d09b689911ac
Upstream: limited next_upstream time and tries (ticket #544).
Roman Arutyunyan <arut@nginx.com>
parents:
5829
diff
changeset
|
423 offsetof(ngx_http_uwsgi_loc_conf_t, upstream.next_upstream_tries), |
d09b689911ac
Upstream: limited next_upstream time and tries (ticket #544).
Roman Arutyunyan <arut@nginx.com>
parents:
5829
diff
changeset
|
424 NULL }, |
d09b689911ac
Upstream: limited next_upstream time and tries (ticket #544).
Roman Arutyunyan <arut@nginx.com>
parents:
5829
diff
changeset
|
425 |
d09b689911ac
Upstream: limited next_upstream time and tries (ticket #544).
Roman Arutyunyan <arut@nginx.com>
parents:
5829
diff
changeset
|
426 { ngx_string("uwsgi_next_upstream_timeout"), |
d09b689911ac
Upstream: limited next_upstream time and tries (ticket #544).
Roman Arutyunyan <arut@nginx.com>
parents:
5829
diff
changeset
|
427 NGX_HTTP_MAIN_CONF|NGX_HTTP_SRV_CONF|NGX_HTTP_LOC_CONF|NGX_CONF_TAKE1, |
d09b689911ac
Upstream: limited next_upstream time and tries (ticket #544).
Roman Arutyunyan <arut@nginx.com>
parents:
5829
diff
changeset
|
428 ngx_conf_set_msec_slot, |
d09b689911ac
Upstream: limited next_upstream time and tries (ticket #544).
Roman Arutyunyan <arut@nginx.com>
parents:
5829
diff
changeset
|
429 NGX_HTTP_LOC_CONF_OFFSET, |
d09b689911ac
Upstream: limited next_upstream time and tries (ticket #544).
Roman Arutyunyan <arut@nginx.com>
parents:
5829
diff
changeset
|
430 offsetof(ngx_http_uwsgi_loc_conf_t, upstream.next_upstream_timeout), |
d09b689911ac
Upstream: limited next_upstream time and tries (ticket #544).
Roman Arutyunyan <arut@nginx.com>
parents:
5829
diff
changeset
|
431 NULL }, |
d09b689911ac
Upstream: limited next_upstream time and tries (ticket #544).
Roman Arutyunyan <arut@nginx.com>
parents:
5829
diff
changeset
|
432 |
3543
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
433 { ngx_string("uwsgi_param"), |
4330
5ee5ddec17b1
uwsgi: added "if_not_empty" flag support to the "uwsgi_param" directive.
Valentin Bartenev <vbart@nginx.com>
parents:
4278
diff
changeset
|
434 NGX_HTTP_MAIN_CONF|NGX_HTTP_SRV_CONF|NGX_HTTP_LOC_CONF|NGX_CONF_TAKE23, |
5ee5ddec17b1
uwsgi: added "if_not_empty" flag support to the "uwsgi_param" directive.
Valentin Bartenev <vbart@nginx.com>
parents:
4278
diff
changeset
|
435 ngx_http_upstream_param_set_slot, |
3543
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
436 NGX_HTTP_LOC_CONF_OFFSET, |
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
437 offsetof(ngx_http_uwsgi_loc_conf_t, params_source), |
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
438 NULL }, |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
439 |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
440 { ngx_string("uwsgi_string"), |
3543
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
441 NGX_HTTP_MAIN_CONF|NGX_HTTP_SRV_CONF|NGX_HTTP_LOC_CONF|NGX_CONF_TAKE1, |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
442 ngx_conf_set_str_slot, |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
443 NGX_HTTP_LOC_CONF_OFFSET, |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
444 offsetof(ngx_http_uwsgi_loc_conf_t, uwsgi_string), |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
445 NULL }, |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
446 |
3543
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
447 { ngx_string("uwsgi_pass_header"), |
3729 | 448 NGX_HTTP_MAIN_CONF|NGX_HTTP_SRV_CONF|NGX_HTTP_LOC_CONF|NGX_CONF_TAKE1, |
3543
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
449 ngx_conf_set_str_array_slot, |
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
450 NGX_HTTP_LOC_CONF_OFFSET, |
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
451 offsetof(ngx_http_uwsgi_loc_conf_t, upstream.pass_headers), |
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
452 NULL }, |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
453 |
3543
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
454 { ngx_string("uwsgi_hide_header"), |
3729 | 455 NGX_HTTP_MAIN_CONF|NGX_HTTP_SRV_CONF|NGX_HTTP_LOC_CONF|NGX_CONF_TAKE1, |
3543
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
456 ngx_conf_set_str_array_slot, |
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
457 NGX_HTTP_LOC_CONF_OFFSET, |
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
458 offsetof(ngx_http_uwsgi_loc_conf_t, upstream.hide_headers), |
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
459 NULL }, |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
460 |
3543
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
461 { ngx_string("uwsgi_ignore_headers"), |
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
462 NGX_HTTP_MAIN_CONF|NGX_HTTP_SRV_CONF|NGX_HTTP_LOC_CONF|NGX_CONF_1MORE, |
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
463 ngx_conf_set_bitmask_slot, |
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
464 NGX_HTTP_LOC_CONF_OFFSET, |
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
465 offsetof(ngx_http_uwsgi_loc_conf_t, upstream.ignore_headers), |
3667
12bd9e26fadb
use shared ngx_http_upstream_ignore_headers_masks[]
Igor Sysoev <igor@sysoev.ru>
parents:
3630
diff
changeset
|
466 &ngx_http_upstream_ignore_headers_masks }, |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
467 |
5457
c82b2e020b9f
SSL support in the uwsgi module.
Maxim Dounin <mdounin@mdounin.ru>
parents:
5451
diff
changeset
|
468 #if (NGX_HTTP_SSL) |
c82b2e020b9f
SSL support in the uwsgi module.
Maxim Dounin <mdounin@mdounin.ru>
parents:
5451
diff
changeset
|
469 |
c82b2e020b9f
SSL support in the uwsgi module.
Maxim Dounin <mdounin@mdounin.ru>
parents:
5451
diff
changeset
|
470 { ngx_string("uwsgi_ssl_session_reuse"), |
c82b2e020b9f
SSL support in the uwsgi module.
Maxim Dounin <mdounin@mdounin.ru>
parents:
5451
diff
changeset
|
471 NGX_HTTP_MAIN_CONF|NGX_HTTP_SRV_CONF|NGX_HTTP_LOC_CONF|NGX_CONF_FLAG, |
c82b2e020b9f
SSL support in the uwsgi module.
Maxim Dounin <mdounin@mdounin.ru>
parents:
5451
diff
changeset
|
472 ngx_conf_set_flag_slot, |
c82b2e020b9f
SSL support in the uwsgi module.
Maxim Dounin <mdounin@mdounin.ru>
parents:
5451
diff
changeset
|
473 NGX_HTTP_LOC_CONF_OFFSET, |
c82b2e020b9f
SSL support in the uwsgi module.
Maxim Dounin <mdounin@mdounin.ru>
parents:
5451
diff
changeset
|
474 offsetof(ngx_http_uwsgi_loc_conf_t, upstream.ssl_session_reuse), |
c82b2e020b9f
SSL support in the uwsgi module.
Maxim Dounin <mdounin@mdounin.ru>
parents:
5451
diff
changeset
|
475 NULL }, |
c82b2e020b9f
SSL support in the uwsgi module.
Maxim Dounin <mdounin@mdounin.ru>
parents:
5451
diff
changeset
|
476 |
c82b2e020b9f
SSL support in the uwsgi module.
Maxim Dounin <mdounin@mdounin.ru>
parents:
5451
diff
changeset
|
477 { ngx_string("uwsgi_ssl_protocols"), |
c82b2e020b9f
SSL support in the uwsgi module.
Maxim Dounin <mdounin@mdounin.ru>
parents:
5451
diff
changeset
|
478 NGX_HTTP_MAIN_CONF|NGX_HTTP_SRV_CONF|NGX_HTTP_LOC_CONF|NGX_CONF_1MORE, |
c82b2e020b9f
SSL support in the uwsgi module.
Maxim Dounin <mdounin@mdounin.ru>
parents:
5451
diff
changeset
|
479 ngx_conf_set_bitmask_slot, |
c82b2e020b9f
SSL support in the uwsgi module.
Maxim Dounin <mdounin@mdounin.ru>
parents:
5451
diff
changeset
|
480 NGX_HTTP_LOC_CONF_OFFSET, |
c82b2e020b9f
SSL support in the uwsgi module.
Maxim Dounin <mdounin@mdounin.ru>
parents:
5451
diff
changeset
|
481 offsetof(ngx_http_uwsgi_loc_conf_t, ssl_protocols), |
c82b2e020b9f
SSL support in the uwsgi module.
Maxim Dounin <mdounin@mdounin.ru>
parents:
5451
diff
changeset
|
482 &ngx_http_uwsgi_ssl_protocols }, |
c82b2e020b9f
SSL support in the uwsgi module.
Maxim Dounin <mdounin@mdounin.ru>
parents:
5451
diff
changeset
|
483 |
c82b2e020b9f
SSL support in the uwsgi module.
Maxim Dounin <mdounin@mdounin.ru>
parents:
5451
diff
changeset
|
484 { ngx_string("uwsgi_ssl_ciphers"), |
c82b2e020b9f
SSL support in the uwsgi module.
Maxim Dounin <mdounin@mdounin.ru>
parents:
5451
diff
changeset
|
485 NGX_HTTP_MAIN_CONF|NGX_HTTP_SRV_CONF|NGX_HTTP_LOC_CONF|NGX_CONF_TAKE1, |
c82b2e020b9f
SSL support in the uwsgi module.
Maxim Dounin <mdounin@mdounin.ru>
parents:
5451
diff
changeset
|
486 ngx_conf_set_str_slot, |
c82b2e020b9f
SSL support in the uwsgi module.
Maxim Dounin <mdounin@mdounin.ru>
parents:
5451
diff
changeset
|
487 NGX_HTTP_LOC_CONF_OFFSET, |
c82b2e020b9f
SSL support in the uwsgi module.
Maxim Dounin <mdounin@mdounin.ru>
parents:
5451
diff
changeset
|
488 offsetof(ngx_http_uwsgi_loc_conf_t, ssl_ciphers), |
c82b2e020b9f
SSL support in the uwsgi module.
Maxim Dounin <mdounin@mdounin.ru>
parents:
5451
diff
changeset
|
489 NULL }, |
c82b2e020b9f
SSL support in the uwsgi module.
Maxim Dounin <mdounin@mdounin.ru>
parents:
5451
diff
changeset
|
490 |
5662
3cb79707516a
Upstream: uwsgi_ssl_name, uwsgi_ssl_verify, and so on.
Maxim Dounin <mdounin@mdounin.ru>
parents:
5659
diff
changeset
|
491 { ngx_string("uwsgi_ssl_name"), |
3cb79707516a
Upstream: uwsgi_ssl_name, uwsgi_ssl_verify, and so on.
Maxim Dounin <mdounin@mdounin.ru>
parents:
5659
diff
changeset
|
492 NGX_HTTP_MAIN_CONF|NGX_HTTP_SRV_CONF|NGX_HTTP_LOC_CONF|NGX_CONF_TAKE1, |
3cb79707516a
Upstream: uwsgi_ssl_name, uwsgi_ssl_verify, and so on.
Maxim Dounin <mdounin@mdounin.ru>
parents:
5659
diff
changeset
|
493 ngx_http_set_complex_value_slot, |
3cb79707516a
Upstream: uwsgi_ssl_name, uwsgi_ssl_verify, and so on.
Maxim Dounin <mdounin@mdounin.ru>
parents:
5659
diff
changeset
|
494 NGX_HTTP_LOC_CONF_OFFSET, |
3cb79707516a
Upstream: uwsgi_ssl_name, uwsgi_ssl_verify, and so on.
Maxim Dounin <mdounin@mdounin.ru>
parents:
5659
diff
changeset
|
495 offsetof(ngx_http_uwsgi_loc_conf_t, upstream.ssl_name), |
3cb79707516a
Upstream: uwsgi_ssl_name, uwsgi_ssl_verify, and so on.
Maxim Dounin <mdounin@mdounin.ru>
parents:
5659
diff
changeset
|
496 NULL }, |
3cb79707516a
Upstream: uwsgi_ssl_name, uwsgi_ssl_verify, and so on.
Maxim Dounin <mdounin@mdounin.ru>
parents:
5659
diff
changeset
|
497 |
3cb79707516a
Upstream: uwsgi_ssl_name, uwsgi_ssl_verify, and so on.
Maxim Dounin <mdounin@mdounin.ru>
parents:
5659
diff
changeset
|
498 { ngx_string("uwsgi_ssl_server_name"), |
3cb79707516a
Upstream: uwsgi_ssl_name, uwsgi_ssl_verify, and so on.
Maxim Dounin <mdounin@mdounin.ru>
parents:
5659
diff
changeset
|
499 NGX_HTTP_MAIN_CONF|NGX_HTTP_SRV_CONF|NGX_HTTP_LOC_CONF|NGX_CONF_FLAG, |
3cb79707516a
Upstream: uwsgi_ssl_name, uwsgi_ssl_verify, and so on.
Maxim Dounin <mdounin@mdounin.ru>
parents:
5659
diff
changeset
|
500 ngx_conf_set_flag_slot, |
3cb79707516a
Upstream: uwsgi_ssl_name, uwsgi_ssl_verify, and so on.
Maxim Dounin <mdounin@mdounin.ru>
parents:
5659
diff
changeset
|
501 NGX_HTTP_LOC_CONF_OFFSET, |
3cb79707516a
Upstream: uwsgi_ssl_name, uwsgi_ssl_verify, and so on.
Maxim Dounin <mdounin@mdounin.ru>
parents:
5659
diff
changeset
|
502 offsetof(ngx_http_uwsgi_loc_conf_t, upstream.ssl_server_name), |
3cb79707516a
Upstream: uwsgi_ssl_name, uwsgi_ssl_verify, and so on.
Maxim Dounin <mdounin@mdounin.ru>
parents:
5659
diff
changeset
|
503 NULL }, |
3cb79707516a
Upstream: uwsgi_ssl_name, uwsgi_ssl_verify, and so on.
Maxim Dounin <mdounin@mdounin.ru>
parents:
5659
diff
changeset
|
504 |
3cb79707516a
Upstream: uwsgi_ssl_name, uwsgi_ssl_verify, and so on.
Maxim Dounin <mdounin@mdounin.ru>
parents:
5659
diff
changeset
|
505 { ngx_string("uwsgi_ssl_verify"), |
3cb79707516a
Upstream: uwsgi_ssl_name, uwsgi_ssl_verify, and so on.
Maxim Dounin <mdounin@mdounin.ru>
parents:
5659
diff
changeset
|
506 NGX_HTTP_MAIN_CONF|NGX_HTTP_SRV_CONF|NGX_HTTP_LOC_CONF|NGX_CONF_FLAG, |
3cb79707516a
Upstream: uwsgi_ssl_name, uwsgi_ssl_verify, and so on.
Maxim Dounin <mdounin@mdounin.ru>
parents:
5659
diff
changeset
|
507 ngx_conf_set_flag_slot, |
3cb79707516a
Upstream: uwsgi_ssl_name, uwsgi_ssl_verify, and so on.
Maxim Dounin <mdounin@mdounin.ru>
parents:
5659
diff
changeset
|
508 NGX_HTTP_LOC_CONF_OFFSET, |
3cb79707516a
Upstream: uwsgi_ssl_name, uwsgi_ssl_verify, and so on.
Maxim Dounin <mdounin@mdounin.ru>
parents:
5659
diff
changeset
|
509 offsetof(ngx_http_uwsgi_loc_conf_t, upstream.ssl_verify), |
3cb79707516a
Upstream: uwsgi_ssl_name, uwsgi_ssl_verify, and so on.
Maxim Dounin <mdounin@mdounin.ru>
parents:
5659
diff
changeset
|
510 NULL }, |
3cb79707516a
Upstream: uwsgi_ssl_name, uwsgi_ssl_verify, and so on.
Maxim Dounin <mdounin@mdounin.ru>
parents:
5659
diff
changeset
|
511 |
3cb79707516a
Upstream: uwsgi_ssl_name, uwsgi_ssl_verify, and so on.
Maxim Dounin <mdounin@mdounin.ru>
parents:
5659
diff
changeset
|
512 { ngx_string("uwsgi_ssl_verify_depth"), |
3cb79707516a
Upstream: uwsgi_ssl_name, uwsgi_ssl_verify, and so on.
Maxim Dounin <mdounin@mdounin.ru>
parents:
5659
diff
changeset
|
513 NGX_HTTP_MAIN_CONF|NGX_HTTP_SRV_CONF|NGX_HTTP_LOC_CONF|NGX_CONF_TAKE1, |
3cb79707516a
Upstream: uwsgi_ssl_name, uwsgi_ssl_verify, and so on.
Maxim Dounin <mdounin@mdounin.ru>
parents:
5659
diff
changeset
|
514 ngx_conf_set_num_slot, |
3cb79707516a
Upstream: uwsgi_ssl_name, uwsgi_ssl_verify, and so on.
Maxim Dounin <mdounin@mdounin.ru>
parents:
5659
diff
changeset
|
515 NGX_HTTP_LOC_CONF_OFFSET, |
3cb79707516a
Upstream: uwsgi_ssl_name, uwsgi_ssl_verify, and so on.
Maxim Dounin <mdounin@mdounin.ru>
parents:
5659
diff
changeset
|
516 offsetof(ngx_http_uwsgi_loc_conf_t, ssl_verify_depth), |
3cb79707516a
Upstream: uwsgi_ssl_name, uwsgi_ssl_verify, and so on.
Maxim Dounin <mdounin@mdounin.ru>
parents:
5659
diff
changeset
|
517 NULL }, |
3cb79707516a
Upstream: uwsgi_ssl_name, uwsgi_ssl_verify, and so on.
Maxim Dounin <mdounin@mdounin.ru>
parents:
5659
diff
changeset
|
518 |
3cb79707516a
Upstream: uwsgi_ssl_name, uwsgi_ssl_verify, and so on.
Maxim Dounin <mdounin@mdounin.ru>
parents:
5659
diff
changeset
|
519 { ngx_string("uwsgi_ssl_trusted_certificate"), |
3cb79707516a
Upstream: uwsgi_ssl_name, uwsgi_ssl_verify, and so on.
Maxim Dounin <mdounin@mdounin.ru>
parents:
5659
diff
changeset
|
520 NGX_HTTP_MAIN_CONF|NGX_HTTP_SRV_CONF|NGX_HTTP_LOC_CONF|NGX_CONF_TAKE1, |
3cb79707516a
Upstream: uwsgi_ssl_name, uwsgi_ssl_verify, and so on.
Maxim Dounin <mdounin@mdounin.ru>
parents:
5659
diff
changeset
|
521 ngx_conf_set_str_slot, |
3cb79707516a
Upstream: uwsgi_ssl_name, uwsgi_ssl_verify, and so on.
Maxim Dounin <mdounin@mdounin.ru>
parents:
5659
diff
changeset
|
522 NGX_HTTP_LOC_CONF_OFFSET, |
3cb79707516a
Upstream: uwsgi_ssl_name, uwsgi_ssl_verify, and so on.
Maxim Dounin <mdounin@mdounin.ru>
parents:
5659
diff
changeset
|
523 offsetof(ngx_http_uwsgi_loc_conf_t, ssl_trusted_certificate), |
3cb79707516a
Upstream: uwsgi_ssl_name, uwsgi_ssl_verify, and so on.
Maxim Dounin <mdounin@mdounin.ru>
parents:
5659
diff
changeset
|
524 NULL }, |
3cb79707516a
Upstream: uwsgi_ssl_name, uwsgi_ssl_verify, and so on.
Maxim Dounin <mdounin@mdounin.ru>
parents:
5659
diff
changeset
|
525 |
3cb79707516a
Upstream: uwsgi_ssl_name, uwsgi_ssl_verify, and so on.
Maxim Dounin <mdounin@mdounin.ru>
parents:
5659
diff
changeset
|
526 { ngx_string("uwsgi_ssl_crl"), |
3cb79707516a
Upstream: uwsgi_ssl_name, uwsgi_ssl_verify, and so on.
Maxim Dounin <mdounin@mdounin.ru>
parents:
5659
diff
changeset
|
527 NGX_HTTP_MAIN_CONF|NGX_HTTP_SRV_CONF|NGX_HTTP_LOC_CONF|NGX_CONF_TAKE1, |
3cb79707516a
Upstream: uwsgi_ssl_name, uwsgi_ssl_verify, and so on.
Maxim Dounin <mdounin@mdounin.ru>
parents:
5659
diff
changeset
|
528 ngx_conf_set_str_slot, |
3cb79707516a
Upstream: uwsgi_ssl_name, uwsgi_ssl_verify, and so on.
Maxim Dounin <mdounin@mdounin.ru>
parents:
5659
diff
changeset
|
529 NGX_HTTP_LOC_CONF_OFFSET, |
3cb79707516a
Upstream: uwsgi_ssl_name, uwsgi_ssl_verify, and so on.
Maxim Dounin <mdounin@mdounin.ru>
parents:
5659
diff
changeset
|
530 offsetof(ngx_http_uwsgi_loc_conf_t, ssl_crl), |
3cb79707516a
Upstream: uwsgi_ssl_name, uwsgi_ssl_verify, and so on.
Maxim Dounin <mdounin@mdounin.ru>
parents:
5659
diff
changeset
|
531 NULL }, |
3cb79707516a
Upstream: uwsgi_ssl_name, uwsgi_ssl_verify, and so on.
Maxim Dounin <mdounin@mdounin.ru>
parents:
5659
diff
changeset
|
532 |
5900
20d966ad5e89
Upstream: add "proxy_ssl_certificate" and friends.
Piotr Sikora <piotr@cloudflare.com>
parents:
5883
diff
changeset
|
533 { ngx_string("uwsgi_ssl_certificate"), |
20d966ad5e89
Upstream: add "proxy_ssl_certificate" and friends.
Piotr Sikora <piotr@cloudflare.com>
parents:
5883
diff
changeset
|
534 NGX_HTTP_MAIN_CONF|NGX_HTTP_SRV_CONF|NGX_HTTP_LOC_CONF|NGX_CONF_TAKE1, |
20d966ad5e89
Upstream: add "proxy_ssl_certificate" and friends.
Piotr Sikora <piotr@cloudflare.com>
parents:
5883
diff
changeset
|
535 ngx_conf_set_str_slot, |
20d966ad5e89
Upstream: add "proxy_ssl_certificate" and friends.
Piotr Sikora <piotr@cloudflare.com>
parents:
5883
diff
changeset
|
536 NGX_HTTP_LOC_CONF_OFFSET, |
20d966ad5e89
Upstream: add "proxy_ssl_certificate" and friends.
Piotr Sikora <piotr@cloudflare.com>
parents:
5883
diff
changeset
|
537 offsetof(ngx_http_uwsgi_loc_conf_t, ssl_certificate), |
20d966ad5e89
Upstream: add "proxy_ssl_certificate" and friends.
Piotr Sikora <piotr@cloudflare.com>
parents:
5883
diff
changeset
|
538 NULL }, |
20d966ad5e89
Upstream: add "proxy_ssl_certificate" and friends.
Piotr Sikora <piotr@cloudflare.com>
parents:
5883
diff
changeset
|
539 |
20d966ad5e89
Upstream: add "proxy_ssl_certificate" and friends.
Piotr Sikora <piotr@cloudflare.com>
parents:
5883
diff
changeset
|
540 { ngx_string("uwsgi_ssl_certificate_key"), |
20d966ad5e89
Upstream: add "proxy_ssl_certificate" and friends.
Piotr Sikora <piotr@cloudflare.com>
parents:
5883
diff
changeset
|
541 NGX_HTTP_MAIN_CONF|NGX_HTTP_SRV_CONF|NGX_HTTP_LOC_CONF|NGX_CONF_TAKE1, |
20d966ad5e89
Upstream: add "proxy_ssl_certificate" and friends.
Piotr Sikora <piotr@cloudflare.com>
parents:
5883
diff
changeset
|
542 ngx_conf_set_str_slot, |
20d966ad5e89
Upstream: add "proxy_ssl_certificate" and friends.
Piotr Sikora <piotr@cloudflare.com>
parents:
5883
diff
changeset
|
543 NGX_HTTP_LOC_CONF_OFFSET, |
20d966ad5e89
Upstream: add "proxy_ssl_certificate" and friends.
Piotr Sikora <piotr@cloudflare.com>
parents:
5883
diff
changeset
|
544 offsetof(ngx_http_uwsgi_loc_conf_t, ssl_certificate_key), |
20d966ad5e89
Upstream: add "proxy_ssl_certificate" and friends.
Piotr Sikora <piotr@cloudflare.com>
parents:
5883
diff
changeset
|
545 NULL }, |
20d966ad5e89
Upstream: add "proxy_ssl_certificate" and friends.
Piotr Sikora <piotr@cloudflare.com>
parents:
5883
diff
changeset
|
546 |
20d966ad5e89
Upstream: add "proxy_ssl_certificate" and friends.
Piotr Sikora <piotr@cloudflare.com>
parents:
5883
diff
changeset
|
547 { ngx_string("uwsgi_ssl_password_file"), |
20d966ad5e89
Upstream: add "proxy_ssl_certificate" and friends.
Piotr Sikora <piotr@cloudflare.com>
parents:
5883
diff
changeset
|
548 NGX_HTTP_MAIN_CONF|NGX_HTTP_SRV_CONF|NGX_HTTP_LOC_CONF|NGX_CONF_TAKE1, |
20d966ad5e89
Upstream: add "proxy_ssl_certificate" and friends.
Piotr Sikora <piotr@cloudflare.com>
parents:
5883
diff
changeset
|
549 ngx_http_uwsgi_ssl_password_file, |
20d966ad5e89
Upstream: add "proxy_ssl_certificate" and friends.
Piotr Sikora <piotr@cloudflare.com>
parents:
5883
diff
changeset
|
550 NGX_HTTP_LOC_CONF_OFFSET, |
20d966ad5e89
Upstream: add "proxy_ssl_certificate" and friends.
Piotr Sikora <piotr@cloudflare.com>
parents:
5883
diff
changeset
|
551 0, |
20d966ad5e89
Upstream: add "proxy_ssl_certificate" and friends.
Piotr Sikora <piotr@cloudflare.com>
parents:
5883
diff
changeset
|
552 NULL }, |
20d966ad5e89
Upstream: add "proxy_ssl_certificate" and friends.
Piotr Sikora <piotr@cloudflare.com>
parents:
5883
diff
changeset
|
553 |
5457
c82b2e020b9f
SSL support in the uwsgi module.
Maxim Dounin <mdounin@mdounin.ru>
parents:
5451
diff
changeset
|
554 #endif |
c82b2e020b9f
SSL support in the uwsgi module.
Maxim Dounin <mdounin@mdounin.ru>
parents:
5451
diff
changeset
|
555 |
3543
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
556 ngx_null_command |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
557 }; |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
558 |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
559 |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
560 static ngx_http_module_t ngx_http_uwsgi_module_ctx = { |
3553
b4a60663f6c0
delete unused ngx_http_uwsgi_add_variables()
Igor Sysoev <igor@sysoev.ru>
parents:
3552
diff
changeset
|
561 NULL, /* preconfiguration */ |
3543
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
562 NULL, /* postconfiguration */ |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
563 |
5951
610832763648
Upstream: added variables support to proxy_cache and friends.
Valentin Bartenev <vbart@nginx.com>
parents:
5949
diff
changeset
|
564 ngx_http_uwsgi_create_main_conf, /* create main configuration */ |
3543
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
565 NULL, /* init main configuration */ |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
566 |
3543
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
567 NULL, /* create server configuration */ |
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
568 NULL, /* merge server configuration */ |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
569 |
3542
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
570 ngx_http_uwsgi_create_loc_conf, /* create location configuration */ |
3543
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
571 ngx_http_uwsgi_merge_loc_conf /* merge location configuration */ |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
572 }; |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
573 |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
574 |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
575 ngx_module_t ngx_http_uwsgi_module = { |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
576 NGX_MODULE_V1, |
3543
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
577 &ngx_http_uwsgi_module_ctx, /* module context */ |
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
578 ngx_http_uwsgi_commands, /* module directives */ |
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
579 NGX_HTTP_MODULE, /* module type */ |
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
580 NULL, /* init master */ |
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
581 NULL, /* init module */ |
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
582 NULL, /* init process */ |
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
583 NULL, /* init thread */ |
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
584 NULL, /* exit thread */ |
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
585 NULL, /* exit process */ |
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
586 NULL, /* exit master */ |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
587 NGX_MODULE_V1_PADDING |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
588 }; |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
589 |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
590 |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
591 static ngx_str_t ngx_http_uwsgi_hide_headers[] = { |
3543
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
592 ngx_string("X-Accel-Expires"), |
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
593 ngx_string("X-Accel-Redirect"), |
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
594 ngx_string("X-Accel-Limit-Rate"), |
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
595 ngx_string("X-Accel-Buffering"), |
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
596 ngx_string("X-Accel-Charset"), |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
597 ngx_null_string |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
598 }; |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
599 |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
600 |
3568 | 601 #if (NGX_HTTP_CACHE) |
602 | |
603 static ngx_keyval_t ngx_http_uwsgi_cache_headers[] = { | |
5441
43ccaf8e8728
Upstream: cache revalidation with conditional requests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
5393
diff
changeset
|
604 { ngx_string("HTTP_IF_MODIFIED_SINCE"), |
43ccaf8e8728
Upstream: cache revalidation with conditional requests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
5393
diff
changeset
|
605 ngx_string("$upstream_cache_last_modified") }, |
3568 | 606 { ngx_string("HTTP_IF_UNMODIFIED_SINCE"), ngx_string("") }, |
5738
c95d7882dfc9
Upstream: cache revalidation using If-None-Match.
Maxim Dounin <mdounin@mdounin.ru>
parents:
5662
diff
changeset
|
607 { ngx_string("HTTP_IF_NONE_MATCH"), ngx_string("$upstream_cache_etag") }, |
3568 | 608 { ngx_string("HTTP_IF_MATCH"), ngx_string("") }, |
609 { ngx_string("HTTP_RANGE"), ngx_string("") }, | |
610 { ngx_string("HTTP_IF_RANGE"), ngx_string("") }, | |
611 { ngx_null_string, ngx_null_string } | |
612 }; | |
613 | |
614 #endif | |
615 | |
616 | |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
617 static ngx_path_init_t ngx_http_uwsgi_temp_path = { |
3543
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
618 ngx_string(NGX_HTTP_UWSGI_TEMP_PATH), { 1, 2, 0 } |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
619 }; |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
620 |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
621 |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
622 static ngx_int_t |
3543
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
623 ngx_http_uwsgi_handler(ngx_http_request_t *r) |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
624 { |
5951
610832763648
Upstream: added variables support to proxy_cache and friends.
Valentin Bartenev <vbart@nginx.com>
parents:
5949
diff
changeset
|
625 ngx_int_t rc; |
610832763648
Upstream: added variables support to proxy_cache and friends.
Valentin Bartenev <vbart@nginx.com>
parents:
5949
diff
changeset
|
626 ngx_http_status_t *status; |
610832763648
Upstream: added variables support to proxy_cache and friends.
Valentin Bartenev <vbart@nginx.com>
parents:
5949
diff
changeset
|
627 ngx_http_upstream_t *u; |
610832763648
Upstream: added variables support to proxy_cache and friends.
Valentin Bartenev <vbart@nginx.com>
parents:
5949
diff
changeset
|
628 ngx_http_uwsgi_loc_conf_t *uwcf; |
610832763648
Upstream: added variables support to proxy_cache and friends.
Valentin Bartenev <vbart@nginx.com>
parents:
5949
diff
changeset
|
629 #if (NGX_HTTP_CACHE) |
610832763648
Upstream: added variables support to proxy_cache and friends.
Valentin Bartenev <vbart@nginx.com>
parents:
5949
diff
changeset
|
630 ngx_http_uwsgi_main_conf_t *uwmcf; |
610832763648
Upstream: added variables support to proxy_cache and friends.
Valentin Bartenev <vbart@nginx.com>
parents:
5949
diff
changeset
|
631 #endif |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
632 |
3543
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
633 if (ngx_http_upstream_create(r) != NGX_OK) { |
3542
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
634 return NGX_HTTP_INTERNAL_SERVER_ERROR; |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
635 } |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
636 |
3629 | 637 status = ngx_pcalloc(r->pool, sizeof(ngx_http_status_t)); |
638 if (status == NULL) { | |
3542
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
639 return NGX_HTTP_INTERNAL_SERVER_ERROR; |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
640 } |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
641 |
3629 | 642 ngx_http_set_ctx(r, status, ngx_http_uwsgi_module); |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
643 |
3543
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
644 uwcf = ngx_http_get_module_loc_conf(r, ngx_http_uwsgi_module); |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
645 |
5457
c82b2e020b9f
SSL support in the uwsgi module.
Maxim Dounin <mdounin@mdounin.ru>
parents:
5451
diff
changeset
|
646 u = r->upstream; |
c82b2e020b9f
SSL support in the uwsgi module.
Maxim Dounin <mdounin@mdounin.ru>
parents:
5451
diff
changeset
|
647 |
c82b2e020b9f
SSL support in the uwsgi module.
Maxim Dounin <mdounin@mdounin.ru>
parents:
5451
diff
changeset
|
648 if (uwcf->uwsgi_lengths == NULL) { |
c82b2e020b9f
SSL support in the uwsgi module.
Maxim Dounin <mdounin@mdounin.ru>
parents:
5451
diff
changeset
|
649 |
c82b2e020b9f
SSL support in the uwsgi module.
Maxim Dounin <mdounin@mdounin.ru>
parents:
5451
diff
changeset
|
650 #if (NGX_HTTP_SSL) |
c82b2e020b9f
SSL support in the uwsgi module.
Maxim Dounin <mdounin@mdounin.ru>
parents:
5451
diff
changeset
|
651 u->ssl = (uwcf->upstream.ssl != NULL); |
c82b2e020b9f
SSL support in the uwsgi module.
Maxim Dounin <mdounin@mdounin.ru>
parents:
5451
diff
changeset
|
652 |
c82b2e020b9f
SSL support in the uwsgi module.
Maxim Dounin <mdounin@mdounin.ru>
parents:
5451
diff
changeset
|
653 if (u->ssl) { |
c82b2e020b9f
SSL support in the uwsgi module.
Maxim Dounin <mdounin@mdounin.ru>
parents:
5451
diff
changeset
|
654 ngx_str_set(&u->schema, "suwsgi://"); |
c82b2e020b9f
SSL support in the uwsgi module.
Maxim Dounin <mdounin@mdounin.ru>
parents:
5451
diff
changeset
|
655 |
c82b2e020b9f
SSL support in the uwsgi module.
Maxim Dounin <mdounin@mdounin.ru>
parents:
5451
diff
changeset
|
656 } else { |
c82b2e020b9f
SSL support in the uwsgi module.
Maxim Dounin <mdounin@mdounin.ru>
parents:
5451
diff
changeset
|
657 ngx_str_set(&u->schema, "uwsgi://"); |
5467
f6258a7092e4
Trailing whitespace fix.
Maxim Dounin <mdounin@mdounin.ru>
parents:
5462
diff
changeset
|
658 } |
5457
c82b2e020b9f
SSL support in the uwsgi module.
Maxim Dounin <mdounin@mdounin.ru>
parents:
5451
diff
changeset
|
659 #else |
c82b2e020b9f
SSL support in the uwsgi module.
Maxim Dounin <mdounin@mdounin.ru>
parents:
5451
diff
changeset
|
660 ngx_str_set(&u->schema, "uwsgi://"); |
c82b2e020b9f
SSL support in the uwsgi module.
Maxim Dounin <mdounin@mdounin.ru>
parents:
5451
diff
changeset
|
661 #endif |
c82b2e020b9f
SSL support in the uwsgi module.
Maxim Dounin <mdounin@mdounin.ru>
parents:
5451
diff
changeset
|
662 |
c82b2e020b9f
SSL support in the uwsgi module.
Maxim Dounin <mdounin@mdounin.ru>
parents:
5451
diff
changeset
|
663 } else { |
3543
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
664 if (ngx_http_uwsgi_eval(r, uwcf) != NGX_OK) { |
3542
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
665 return NGX_HTTP_INTERNAL_SERVER_ERROR; |
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
666 } |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
667 } |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
668 |
3543
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
669 u->output.tag = (ngx_buf_tag_t) &ngx_http_uwsgi_module; |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
670 |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
671 u->conf = &uwcf->upstream; |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
672 |
3568 | 673 #if (NGX_HTTP_CACHE) |
5951
610832763648
Upstream: added variables support to proxy_cache and friends.
Valentin Bartenev <vbart@nginx.com>
parents:
5949
diff
changeset
|
674 uwmcf = ngx_http_get_module_main_conf(r, ngx_http_uwsgi_module); |
610832763648
Upstream: added variables support to proxy_cache and friends.
Valentin Bartenev <vbart@nginx.com>
parents:
5949
diff
changeset
|
675 |
610832763648
Upstream: added variables support to proxy_cache and friends.
Valentin Bartenev <vbart@nginx.com>
parents:
5949
diff
changeset
|
676 u->caches = &uwmcf->caches; |
3568 | 677 u->create_key = ngx_http_uwsgi_create_key; |
678 #endif | |
5951
610832763648
Upstream: added variables support to proxy_cache and friends.
Valentin Bartenev <vbart@nginx.com>
parents:
5949
diff
changeset
|
679 |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
680 u->create_request = ngx_http_uwsgi_create_request; |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
681 u->reinit_request = ngx_http_uwsgi_reinit_request; |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
682 u->process_header = ngx_http_uwsgi_process_status_line; |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
683 u->abort_request = ngx_http_uwsgi_abort_request; |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
684 u->finalize_request = ngx_http_uwsgi_finalize_request; |
4615
adcd60233817
Added r->state reset on fastcgi/scgi/uwsgi request start.
Maxim Dounin <mdounin@mdounin.ru>
parents:
4593
diff
changeset
|
685 r->state = 0; |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
686 |
4157
9d59a8eda373
Added uwsgi_buffering and scgi_buffering directives.
Maxim Dounin <mdounin@mdounin.ru>
parents:
4015
diff
changeset
|
687 u->buffering = uwcf->upstream.buffering; |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
688 |
3543
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
689 u->pipe = ngx_pcalloc(r->pool, sizeof(ngx_event_pipe_t)); |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
690 if (u->pipe == NULL) { |
3542
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
691 return NGX_HTTP_INTERNAL_SERVER_ERROR; |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
692 } |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
693 |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
694 u->pipe->input_filter = ngx_event_pipe_copy_input_filter; |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
695 u->pipe->input_ctx = r; |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
696 |
6053
b6eb6ec4fbd9
Upstream: uwsgi_request_buffering, scgi_request_buffering.
Maxim Dounin <mdounin@mdounin.ru>
parents:
5951
diff
changeset
|
697 if (!uwcf->upstream.request_buffering |
b6eb6ec4fbd9
Upstream: uwsgi_request_buffering, scgi_request_buffering.
Maxim Dounin <mdounin@mdounin.ru>
parents:
5951
diff
changeset
|
698 && uwcf->upstream.pass_request_body |
b6eb6ec4fbd9
Upstream: uwsgi_request_buffering, scgi_request_buffering.
Maxim Dounin <mdounin@mdounin.ru>
parents:
5951
diff
changeset
|
699 && !r->headers_in.chunked) |
b6eb6ec4fbd9
Upstream: uwsgi_request_buffering, scgi_request_buffering.
Maxim Dounin <mdounin@mdounin.ru>
parents:
5951
diff
changeset
|
700 { |
b6eb6ec4fbd9
Upstream: uwsgi_request_buffering, scgi_request_buffering.
Maxim Dounin <mdounin@mdounin.ru>
parents:
5951
diff
changeset
|
701 r->request_body_no_buffering = 1; |
b6eb6ec4fbd9
Upstream: uwsgi_request_buffering, scgi_request_buffering.
Maxim Dounin <mdounin@mdounin.ru>
parents:
5951
diff
changeset
|
702 } |
b6eb6ec4fbd9
Upstream: uwsgi_request_buffering, scgi_request_buffering.
Maxim Dounin <mdounin@mdounin.ru>
parents:
5951
diff
changeset
|
703 |
3543
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
704 rc = ngx_http_read_client_request_body(r, ngx_http_upstream_init); |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
705 |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
706 if (rc >= NGX_HTTP_SPECIAL_RESPONSE) { |
3542
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
707 return rc; |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
708 } |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
709 |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
710 return NGX_DONE; |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
711 } |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
712 |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
713 |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
714 static ngx_int_t |
3543
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
715 ngx_http_uwsgi_eval(ngx_http_request_t *r, ngx_http_uwsgi_loc_conf_t * uwcf) |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
716 { |
5457
c82b2e020b9f
SSL support in the uwsgi module.
Maxim Dounin <mdounin@mdounin.ru>
parents:
5451
diff
changeset
|
717 size_t add; |
3610 | 718 ngx_url_t url; |
719 ngx_http_upstream_t *u; | |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
720 |
3610 | 721 ngx_memzero(&url, sizeof(ngx_url_t)); |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
722 |
3610 | 723 if (ngx_http_script_run(r, &url.url, uwcf->uwsgi_lengths->elts, 0, |
3543
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
724 uwcf->uwsgi_values->elts) |
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
725 == NULL) |
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
726 { |
3542
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
727 return NGX_ERROR; |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
728 } |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
729 |
5457
c82b2e020b9f
SSL support in the uwsgi module.
Maxim Dounin <mdounin@mdounin.ru>
parents:
5451
diff
changeset
|
730 if (url.url.len > 8 |
c82b2e020b9f
SSL support in the uwsgi module.
Maxim Dounin <mdounin@mdounin.ru>
parents:
5451
diff
changeset
|
731 && ngx_strncasecmp(url.url.data, (u_char *) "uwsgi://", 8) == 0) |
c82b2e020b9f
SSL support in the uwsgi module.
Maxim Dounin <mdounin@mdounin.ru>
parents:
5451
diff
changeset
|
732 { |
c82b2e020b9f
SSL support in the uwsgi module.
Maxim Dounin <mdounin@mdounin.ru>
parents:
5451
diff
changeset
|
733 add = 8; |
c82b2e020b9f
SSL support in the uwsgi module.
Maxim Dounin <mdounin@mdounin.ru>
parents:
5451
diff
changeset
|
734 |
c82b2e020b9f
SSL support in the uwsgi module.
Maxim Dounin <mdounin@mdounin.ru>
parents:
5451
diff
changeset
|
735 } else if (url.url.len > 9 |
c82b2e020b9f
SSL support in the uwsgi module.
Maxim Dounin <mdounin@mdounin.ru>
parents:
5451
diff
changeset
|
736 && ngx_strncasecmp(url.url.data, (u_char *) "suwsgi://", 9) == 0) |
c82b2e020b9f
SSL support in the uwsgi module.
Maxim Dounin <mdounin@mdounin.ru>
parents:
5451
diff
changeset
|
737 { |
c82b2e020b9f
SSL support in the uwsgi module.
Maxim Dounin <mdounin@mdounin.ru>
parents:
5451
diff
changeset
|
738 |
c82b2e020b9f
SSL support in the uwsgi module.
Maxim Dounin <mdounin@mdounin.ru>
parents:
5451
diff
changeset
|
739 #if (NGX_HTTP_SSL) |
c82b2e020b9f
SSL support in the uwsgi module.
Maxim Dounin <mdounin@mdounin.ru>
parents:
5451
diff
changeset
|
740 add = 9; |
c82b2e020b9f
SSL support in the uwsgi module.
Maxim Dounin <mdounin@mdounin.ru>
parents:
5451
diff
changeset
|
741 r->upstream->ssl = 1; |
c82b2e020b9f
SSL support in the uwsgi module.
Maxim Dounin <mdounin@mdounin.ru>
parents:
5451
diff
changeset
|
742 #else |
5458
4a71ef1aa36d
Fixed build without SSL, broken by c82b2e020b9f.
Maxim Dounin <mdounin@mdounin.ru>
parents:
5457
diff
changeset
|
743 ngx_log_error(NGX_LOG_ERR, r->connection->log, 0, |
4a71ef1aa36d
Fixed build without SSL, broken by c82b2e020b9f.
Maxim Dounin <mdounin@mdounin.ru>
parents:
5457
diff
changeset
|
744 "suwsgi protocol requires SSL support"); |
4a71ef1aa36d
Fixed build without SSL, broken by c82b2e020b9f.
Maxim Dounin <mdounin@mdounin.ru>
parents:
5457
diff
changeset
|
745 return NGX_ERROR; |
5457
c82b2e020b9f
SSL support in the uwsgi module.
Maxim Dounin <mdounin@mdounin.ru>
parents:
5451
diff
changeset
|
746 #endif |
c82b2e020b9f
SSL support in the uwsgi module.
Maxim Dounin <mdounin@mdounin.ru>
parents:
5451
diff
changeset
|
747 |
c82b2e020b9f
SSL support in the uwsgi module.
Maxim Dounin <mdounin@mdounin.ru>
parents:
5451
diff
changeset
|
748 } else { |
c82b2e020b9f
SSL support in the uwsgi module.
Maxim Dounin <mdounin@mdounin.ru>
parents:
5451
diff
changeset
|
749 add = 0; |
c82b2e020b9f
SSL support in the uwsgi module.
Maxim Dounin <mdounin@mdounin.ru>
parents:
5451
diff
changeset
|
750 } |
c82b2e020b9f
SSL support in the uwsgi module.
Maxim Dounin <mdounin@mdounin.ru>
parents:
5451
diff
changeset
|
751 |
c82b2e020b9f
SSL support in the uwsgi module.
Maxim Dounin <mdounin@mdounin.ru>
parents:
5451
diff
changeset
|
752 u = r->upstream; |
c82b2e020b9f
SSL support in the uwsgi module.
Maxim Dounin <mdounin@mdounin.ru>
parents:
5451
diff
changeset
|
753 |
c82b2e020b9f
SSL support in the uwsgi module.
Maxim Dounin <mdounin@mdounin.ru>
parents:
5451
diff
changeset
|
754 if (add) { |
c82b2e020b9f
SSL support in the uwsgi module.
Maxim Dounin <mdounin@mdounin.ru>
parents:
5451
diff
changeset
|
755 u->schema.len = add; |
c82b2e020b9f
SSL support in the uwsgi module.
Maxim Dounin <mdounin@mdounin.ru>
parents:
5451
diff
changeset
|
756 u->schema.data = url.url.data; |
c82b2e020b9f
SSL support in the uwsgi module.
Maxim Dounin <mdounin@mdounin.ru>
parents:
5451
diff
changeset
|
757 |
c82b2e020b9f
SSL support in the uwsgi module.
Maxim Dounin <mdounin@mdounin.ru>
parents:
5451
diff
changeset
|
758 url.url.data += add; |
c82b2e020b9f
SSL support in the uwsgi module.
Maxim Dounin <mdounin@mdounin.ru>
parents:
5451
diff
changeset
|
759 url.url.len -= add; |
c82b2e020b9f
SSL support in the uwsgi module.
Maxim Dounin <mdounin@mdounin.ru>
parents:
5451
diff
changeset
|
760 |
c82b2e020b9f
SSL support in the uwsgi module.
Maxim Dounin <mdounin@mdounin.ru>
parents:
5451
diff
changeset
|
761 } else { |
5462
58716fd3bd2d
Fixed incorrect ngx_str_set() usage, broken in c82b2e020b9f.
Piotr Sikora <piotr@cloudflare.com>
parents:
5458
diff
changeset
|
762 ngx_str_set(&u->schema, "uwsgi://"); |
5457
c82b2e020b9f
SSL support in the uwsgi module.
Maxim Dounin <mdounin@mdounin.ru>
parents:
5451
diff
changeset
|
763 } |
c82b2e020b9f
SSL support in the uwsgi module.
Maxim Dounin <mdounin@mdounin.ru>
parents:
5451
diff
changeset
|
764 |
3610 | 765 url.no_resolve = 1; |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
766 |
3610 | 767 if (ngx_parse_url(r->pool, &url) != NGX_OK) { |
768 if (url.err) { | |
3543
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
769 ngx_log_error(NGX_LOG_ERR, r->connection->log, 0, |
3610 | 770 "%s in upstream \"%V\"", url.err, &url.url); |
3542
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
771 } |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
772 |
3542
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
773 return NGX_ERROR; |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
774 } |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
775 |
3610 | 776 u->resolved = ngx_pcalloc(r->pool, sizeof(ngx_http_upstream_resolved_t)); |
777 if (u->resolved == NULL) { | |
3542
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
778 return NGX_ERROR; |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
779 } |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
780 |
6784
1af120241cde
Upstream: removed unnecessary condition in proxy_eval() and friends.
Ruslan Ermilov <ru@nginx.com>
parents:
6747
diff
changeset
|
781 if (url.addrs) { |
3610 | 782 u->resolved->sockaddr = url.addrs[0].sockaddr; |
783 u->resolved->socklen = url.addrs[0].socklen; | |
6785
d1d0dd69a419
Upstream: added the ngx_http_upstream_resolved_t.name field.
Ruslan Ermilov <ru@nginx.com>
parents:
6784
diff
changeset
|
784 u->resolved->name = url.addrs[0].name; |
3610 | 785 u->resolved->naddrs = 1; |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
786 } |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
787 |
6785
d1d0dd69a419
Upstream: added the ngx_http_upstream_resolved_t.name field.
Ruslan Ermilov <ru@nginx.com>
parents:
6784
diff
changeset
|
788 u->resolved->host = url.host; |
6303
a93345ee8f52
Upstream: fixed "no port" detection in evaluated upstreams.
Ruslan Ermilov <ru@nginx.com>
parents:
6157
diff
changeset
|
789 u->resolved->port = url.port; |
a93345ee8f52
Upstream: fixed "no port" detection in evaluated upstreams.
Ruslan Ermilov <ru@nginx.com>
parents:
6157
diff
changeset
|
790 u->resolved->no_port = url.no_port; |
a93345ee8f52
Upstream: fixed "no port" detection in evaluated upstreams.
Ruslan Ermilov <ru@nginx.com>
parents:
6157
diff
changeset
|
791 |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
792 return NGX_OK; |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
793 } |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
794 |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
795 |
3568 | 796 #if (NGX_HTTP_CACHE) |
797 | |
798 static ngx_int_t | |
799 ngx_http_uwsgi_create_key(ngx_http_request_t *r) | |
800 { | |
801 ngx_str_t *key; | |
802 ngx_http_uwsgi_loc_conf_t *uwcf; | |
803 | |
804 key = ngx_array_push(&r->cache->keys); | |
805 if (key == NULL) { | |
806 return NGX_ERROR; | |
807 } | |
808 | |
809 uwcf = ngx_http_get_module_loc_conf(r, ngx_http_uwsgi_module); | |
810 | |
811 if (ngx_http_complex_value(r, &uwcf->cache_key, key) != NGX_OK) { | |
812 return NGX_ERROR; | |
813 } | |
814 | |
815 return NGX_OK; | |
816 } | |
817 | |
818 #endif | |
819 | |
820 | |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
821 static ngx_int_t |
3543
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
822 ngx_http_uwsgi_create_request(ngx_http_request_t *r) |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
823 { |
3566
b81d44244cb1
allow uwsgi_param to override client headers using HTTP_ parameters
Igor Sysoev <igor@sysoev.ru>
parents:
3565
diff
changeset
|
824 u_char ch, *lowcase_key; |
b81d44244cb1
allow uwsgi_param to override client headers using HTTP_ parameters
Igor Sysoev <igor@sysoev.ru>
parents:
3565
diff
changeset
|
825 size_t key_len, val_len, len, allocated; |
4330
5ee5ddec17b1
uwsgi: added "if_not_empty" flag support to the "uwsgi_param" directive.
Valentin Bartenev <vbart@nginx.com>
parents:
4278
diff
changeset
|
826 ngx_uint_t i, n, hash, skip_empty, header_params; |
3543
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
827 ngx_buf_t *b; |
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
828 ngx_chain_t *cl, *body; |
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
829 ngx_list_part_t *part; |
3566
b81d44244cb1
allow uwsgi_param to override client headers using HTTP_ parameters
Igor Sysoev <igor@sysoev.ru>
parents:
3565
diff
changeset
|
830 ngx_table_elt_t *header, **ignored; |
5908
f8e80f8c7fc7
Upstream: moved header lists to separate structures.
Roman Arutyunyan <arut@nginx.com>
parents:
5907
diff
changeset
|
831 ngx_http_uwsgi_params_t *params; |
3543
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
832 ngx_http_script_code_pt code; |
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
833 ngx_http_script_engine_t e, le; |
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
834 ngx_http_uwsgi_loc_conf_t *uwcf; |
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
835 ngx_http_script_len_code_pt lcode; |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
836 |
3546
3a9fca8cbdfc
simplify binary little endian length processing
Igor Sysoev <igor@sysoev.ru>
parents:
3545
diff
changeset
|
837 len = 0; |
3566
b81d44244cb1
allow uwsgi_param to override client headers using HTTP_ parameters
Igor Sysoev <igor@sysoev.ru>
parents:
3565
diff
changeset
|
838 header_params = 0; |
b81d44244cb1
allow uwsgi_param to override client headers using HTTP_ parameters
Igor Sysoev <igor@sysoev.ru>
parents:
3565
diff
changeset
|
839 ignored = NULL; |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
840 |
3543
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
841 uwcf = ngx_http_get_module_loc_conf(r, ngx_http_uwsgi_module); |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
842 |
5909
8d0cf26ce071
Upstream: different header lists for cached and uncached requests.
Roman Arutyunyan <arut@nginx.com>
parents:
5908
diff
changeset
|
843 #if (NGX_HTTP_CACHE) |
8d0cf26ce071
Upstream: different header lists for cached and uncached requests.
Roman Arutyunyan <arut@nginx.com>
parents:
5908
diff
changeset
|
844 params = r->upstream->cacheable ? &uwcf->params_cache : &uwcf->params; |
8d0cf26ce071
Upstream: different header lists for cached and uncached requests.
Roman Arutyunyan <arut@nginx.com>
parents:
5908
diff
changeset
|
845 #else |
5908
f8e80f8c7fc7
Upstream: moved header lists to separate structures.
Roman Arutyunyan <arut@nginx.com>
parents:
5907
diff
changeset
|
846 params = &uwcf->params; |
5909
8d0cf26ce071
Upstream: different header lists for cached and uncached requests.
Roman Arutyunyan <arut@nginx.com>
parents:
5908
diff
changeset
|
847 #endif |
5908
f8e80f8c7fc7
Upstream: moved header lists to separate structures.
Roman Arutyunyan <arut@nginx.com>
parents:
5907
diff
changeset
|
848 |
f8e80f8c7fc7
Upstream: moved header lists to separate structures.
Roman Arutyunyan <arut@nginx.com>
parents:
5907
diff
changeset
|
849 if (params->lengths) { |
3543
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
850 ngx_memzero(&le, sizeof(ngx_http_script_engine_t)); |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
851 |
5908
f8e80f8c7fc7
Upstream: moved header lists to separate structures.
Roman Arutyunyan <arut@nginx.com>
parents:
5907
diff
changeset
|
852 ngx_http_script_flush_no_cacheable_variables(r, params->flushes); |
3542
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
853 le.flushed = 1; |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
854 |
5908
f8e80f8c7fc7
Upstream: moved header lists to separate structures.
Roman Arutyunyan <arut@nginx.com>
parents:
5907
diff
changeset
|
855 le.ip = params->lengths->elts; |
3542
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
856 le.request = r; |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
857 |
3542
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
858 while (*(uintptr_t *) le.ip) { |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
859 |
3542
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
860 lcode = *(ngx_http_script_len_code_pt *) le.ip; |
3543
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
861 key_len = lcode(&le); |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
862 |
4330
5ee5ddec17b1
uwsgi: added "if_not_empty" flag support to the "uwsgi_param" directive.
Valentin Bartenev <vbart@nginx.com>
parents:
4278
diff
changeset
|
863 lcode = *(ngx_http_script_len_code_pt *) le.ip; |
5ee5ddec17b1
uwsgi: added "if_not_empty" flag support to the "uwsgi_param" directive.
Valentin Bartenev <vbart@nginx.com>
parents:
4278
diff
changeset
|
864 skip_empty = lcode(&le); |
5ee5ddec17b1
uwsgi: added "if_not_empty" flag support to the "uwsgi_param" directive.
Valentin Bartenev <vbart@nginx.com>
parents:
4278
diff
changeset
|
865 |
3542
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
866 for (val_len = 0; *(uintptr_t *) le.ip; val_len += lcode (&le)) { |
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
867 lcode = *(ngx_http_script_len_code_pt *) le.ip; |
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
868 } |
3543
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
869 le.ip += sizeof(uintptr_t); |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
870 |
4330
5ee5ddec17b1
uwsgi: added "if_not_empty" flag support to the "uwsgi_param" directive.
Valentin Bartenev <vbart@nginx.com>
parents:
4278
diff
changeset
|
871 if (skip_empty && val_len == 0) { |
5ee5ddec17b1
uwsgi: added "if_not_empty" flag support to the "uwsgi_param" directive.
Valentin Bartenev <vbart@nginx.com>
parents:
4278
diff
changeset
|
872 continue; |
5ee5ddec17b1
uwsgi: added "if_not_empty" flag support to the "uwsgi_param" directive.
Valentin Bartenev <vbart@nginx.com>
parents:
4278
diff
changeset
|
873 } |
5ee5ddec17b1
uwsgi: added "if_not_empty" flag support to the "uwsgi_param" directive.
Valentin Bartenev <vbart@nginx.com>
parents:
4278
diff
changeset
|
874 |
3546
3a9fca8cbdfc
simplify binary little endian length processing
Igor Sysoev <igor@sysoev.ru>
parents:
3545
diff
changeset
|
875 len += 2 + key_len + 2 + val_len; |
3542
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
876 } |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
877 } |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
878 |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
879 if (uwcf->upstream.pass_request_headers) { |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
880 |
3566
b81d44244cb1
allow uwsgi_param to override client headers using HTTP_ parameters
Igor Sysoev <igor@sysoev.ru>
parents:
3565
diff
changeset
|
881 allocated = 0; |
b81d44244cb1
allow uwsgi_param to override client headers using HTTP_ parameters
Igor Sysoev <igor@sysoev.ru>
parents:
3565
diff
changeset
|
882 lowcase_key = NULL; |
b81d44244cb1
allow uwsgi_param to override client headers using HTTP_ parameters
Igor Sysoev <igor@sysoev.ru>
parents:
3565
diff
changeset
|
883 |
5908
f8e80f8c7fc7
Upstream: moved header lists to separate structures.
Roman Arutyunyan <arut@nginx.com>
parents:
5907
diff
changeset
|
884 if (params->number) { |
4015
e0a435f5f504
Fix ignored headers handling in fastcgi/scgi/uwsgi.
Maxim Dounin <mdounin@mdounin.ru>
parents:
3976
diff
changeset
|
885 n = 0; |
e0a435f5f504
Fix ignored headers handling in fastcgi/scgi/uwsgi.
Maxim Dounin <mdounin@mdounin.ru>
parents:
3976
diff
changeset
|
886 part = &r->headers_in.headers.part; |
e0a435f5f504
Fix ignored headers handling in fastcgi/scgi/uwsgi.
Maxim Dounin <mdounin@mdounin.ru>
parents:
3976
diff
changeset
|
887 |
e0a435f5f504
Fix ignored headers handling in fastcgi/scgi/uwsgi.
Maxim Dounin <mdounin@mdounin.ru>
parents:
3976
diff
changeset
|
888 while (part) { |
e0a435f5f504
Fix ignored headers handling in fastcgi/scgi/uwsgi.
Maxim Dounin <mdounin@mdounin.ru>
parents:
3976
diff
changeset
|
889 n += part->nelts; |
e0a435f5f504
Fix ignored headers handling in fastcgi/scgi/uwsgi.
Maxim Dounin <mdounin@mdounin.ru>
parents:
3976
diff
changeset
|
890 part = part->next; |
e0a435f5f504
Fix ignored headers handling in fastcgi/scgi/uwsgi.
Maxim Dounin <mdounin@mdounin.ru>
parents:
3976
diff
changeset
|
891 } |
e0a435f5f504
Fix ignored headers handling in fastcgi/scgi/uwsgi.
Maxim Dounin <mdounin@mdounin.ru>
parents:
3976
diff
changeset
|
892 |
e0a435f5f504
Fix ignored headers handling in fastcgi/scgi/uwsgi.
Maxim Dounin <mdounin@mdounin.ru>
parents:
3976
diff
changeset
|
893 ignored = ngx_palloc(r->pool, n * sizeof(void *)); |
3566
b81d44244cb1
allow uwsgi_param to override client headers using HTTP_ parameters
Igor Sysoev <igor@sysoev.ru>
parents:
3565
diff
changeset
|
894 if (ignored == NULL) { |
b81d44244cb1
allow uwsgi_param to override client headers using HTTP_ parameters
Igor Sysoev <igor@sysoev.ru>
parents:
3565
diff
changeset
|
895 return NGX_ERROR; |
b81d44244cb1
allow uwsgi_param to override client headers using HTTP_ parameters
Igor Sysoev <igor@sysoev.ru>
parents:
3565
diff
changeset
|
896 } |
b81d44244cb1
allow uwsgi_param to override client headers using HTTP_ parameters
Igor Sysoev <igor@sysoev.ru>
parents:
3565
diff
changeset
|
897 } |
b81d44244cb1
allow uwsgi_param to override client headers using HTTP_ parameters
Igor Sysoev <igor@sysoev.ru>
parents:
3565
diff
changeset
|
898 |
3542
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
899 part = &r->headers_in.headers.part; |
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
900 header = part->elts; |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
901 |
3542
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
902 for (i = 0; /* void */ ; i++) { |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
903 |
3542
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
904 if (i >= part->nelts) { |
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
905 if (part->next == NULL) { |
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
906 break; |
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
907 } |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
908 |
3542
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
909 part = part->next; |
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
910 header = part->elts; |
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
911 i = 0; |
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
912 } |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
913 |
5908
f8e80f8c7fc7
Upstream: moved header lists to separate structures.
Roman Arutyunyan <arut@nginx.com>
parents:
5907
diff
changeset
|
914 if (params->number) { |
3566
b81d44244cb1
allow uwsgi_param to override client headers using HTTP_ parameters
Igor Sysoev <igor@sysoev.ru>
parents:
3565
diff
changeset
|
915 if (allocated < header[i].key.len) { |
b81d44244cb1
allow uwsgi_param to override client headers using HTTP_ parameters
Igor Sysoev <igor@sysoev.ru>
parents:
3565
diff
changeset
|
916 allocated = header[i].key.len + 16; |
b81d44244cb1
allow uwsgi_param to override client headers using HTTP_ parameters
Igor Sysoev <igor@sysoev.ru>
parents:
3565
diff
changeset
|
917 lowcase_key = ngx_pnalloc(r->pool, allocated); |
b81d44244cb1
allow uwsgi_param to override client headers using HTTP_ parameters
Igor Sysoev <igor@sysoev.ru>
parents:
3565
diff
changeset
|
918 if (lowcase_key == NULL) { |
b81d44244cb1
allow uwsgi_param to override client headers using HTTP_ parameters
Igor Sysoev <igor@sysoev.ru>
parents:
3565
diff
changeset
|
919 return NGX_ERROR; |
b81d44244cb1
allow uwsgi_param to override client headers using HTTP_ parameters
Igor Sysoev <igor@sysoev.ru>
parents:
3565
diff
changeset
|
920 } |
b81d44244cb1
allow uwsgi_param to override client headers using HTTP_ parameters
Igor Sysoev <igor@sysoev.ru>
parents:
3565
diff
changeset
|
921 } |
b81d44244cb1
allow uwsgi_param to override client headers using HTTP_ parameters
Igor Sysoev <igor@sysoev.ru>
parents:
3565
diff
changeset
|
922 |
b81d44244cb1
allow uwsgi_param to override client headers using HTTP_ parameters
Igor Sysoev <igor@sysoev.ru>
parents:
3565
diff
changeset
|
923 hash = 0; |
b81d44244cb1
allow uwsgi_param to override client headers using HTTP_ parameters
Igor Sysoev <igor@sysoev.ru>
parents:
3565
diff
changeset
|
924 |
b81d44244cb1
allow uwsgi_param to override client headers using HTTP_ parameters
Igor Sysoev <igor@sysoev.ru>
parents:
3565
diff
changeset
|
925 for (n = 0; n < header[i].key.len; n++) { |
b81d44244cb1
allow uwsgi_param to override client headers using HTTP_ parameters
Igor Sysoev <igor@sysoev.ru>
parents:
3565
diff
changeset
|
926 ch = header[i].key.data[n]; |
b81d44244cb1
allow uwsgi_param to override client headers using HTTP_ parameters
Igor Sysoev <igor@sysoev.ru>
parents:
3565
diff
changeset
|
927 |
b81d44244cb1
allow uwsgi_param to override client headers using HTTP_ parameters
Igor Sysoev <igor@sysoev.ru>
parents:
3565
diff
changeset
|
928 if (ch >= 'A' && ch <= 'Z') { |
b81d44244cb1
allow uwsgi_param to override client headers using HTTP_ parameters
Igor Sysoev <igor@sysoev.ru>
parents:
3565
diff
changeset
|
929 ch |= 0x20; |
b81d44244cb1
allow uwsgi_param to override client headers using HTTP_ parameters
Igor Sysoev <igor@sysoev.ru>
parents:
3565
diff
changeset
|
930 |
b81d44244cb1
allow uwsgi_param to override client headers using HTTP_ parameters
Igor Sysoev <igor@sysoev.ru>
parents:
3565
diff
changeset
|
931 } else if (ch == '-') { |
b81d44244cb1
allow uwsgi_param to override client headers using HTTP_ parameters
Igor Sysoev <igor@sysoev.ru>
parents:
3565
diff
changeset
|
932 ch = '_'; |
b81d44244cb1
allow uwsgi_param to override client headers using HTTP_ parameters
Igor Sysoev <igor@sysoev.ru>
parents:
3565
diff
changeset
|
933 } |
b81d44244cb1
allow uwsgi_param to override client headers using HTTP_ parameters
Igor Sysoev <igor@sysoev.ru>
parents:
3565
diff
changeset
|
934 |
b81d44244cb1
allow uwsgi_param to override client headers using HTTP_ parameters
Igor Sysoev <igor@sysoev.ru>
parents:
3565
diff
changeset
|
935 hash = ngx_hash(hash, ch); |
b81d44244cb1
allow uwsgi_param to override client headers using HTTP_ parameters
Igor Sysoev <igor@sysoev.ru>
parents:
3565
diff
changeset
|
936 lowcase_key[n] = ch; |
b81d44244cb1
allow uwsgi_param to override client headers using HTTP_ parameters
Igor Sysoev <igor@sysoev.ru>
parents:
3565
diff
changeset
|
937 } |
b81d44244cb1
allow uwsgi_param to override client headers using HTTP_ parameters
Igor Sysoev <igor@sysoev.ru>
parents:
3565
diff
changeset
|
938 |
5908
f8e80f8c7fc7
Upstream: moved header lists to separate structures.
Roman Arutyunyan <arut@nginx.com>
parents:
5907
diff
changeset
|
939 if (ngx_hash_find(¶ms->hash, hash, lowcase_key, n)) { |
3566
b81d44244cb1
allow uwsgi_param to override client headers using HTTP_ parameters
Igor Sysoev <igor@sysoev.ru>
parents:
3565
diff
changeset
|
940 ignored[header_params++] = &header[i]; |
b81d44244cb1
allow uwsgi_param to override client headers using HTTP_ parameters
Igor Sysoev <igor@sysoev.ru>
parents:
3565
diff
changeset
|
941 continue; |
b81d44244cb1
allow uwsgi_param to override client headers using HTTP_ parameters
Igor Sysoev <igor@sysoev.ru>
parents:
3565
diff
changeset
|
942 } |
b81d44244cb1
allow uwsgi_param to override client headers using HTTP_ parameters
Igor Sysoev <igor@sysoev.ru>
parents:
3565
diff
changeset
|
943 } |
b81d44244cb1
allow uwsgi_param to override client headers using HTTP_ parameters
Igor Sysoev <igor@sysoev.ru>
parents:
3565
diff
changeset
|
944 |
b81d44244cb1
allow uwsgi_param to override client headers using HTTP_ parameters
Igor Sysoev <igor@sysoev.ru>
parents:
3565
diff
changeset
|
945 len += 2 + sizeof("HTTP_") - 1 + header[i].key.len |
b81d44244cb1
allow uwsgi_param to override client headers using HTTP_ parameters
Igor Sysoev <igor@sysoev.ru>
parents:
3565
diff
changeset
|
946 + 2 + header[i].value.len; |
3542
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
947 } |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
948 } |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
949 |
3555
bc734cf061b0
improve uwsgi_string processing
Igor Sysoev <igor@sysoev.ru>
parents:
3554
diff
changeset
|
950 len += uwcf->uwsgi_string.len; |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
951 |
3543
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
952 #if 0 |
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
953 /* allow custom uwsgi packet */ |
3546
3a9fca8cbdfc
simplify binary little endian length processing
Igor Sysoev <igor@sysoev.ru>
parents:
3545
diff
changeset
|
954 if (len > 0 && len < 2) { |
3542
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
955 ngx_log_error (NGX_LOG_ALERT, r->connection->log, 0, |
3546
3a9fca8cbdfc
simplify binary little endian length processing
Igor Sysoev <igor@sysoev.ru>
parents:
3545
diff
changeset
|
956 "uwsgi request is too little: %uz", len); |
3542
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
957 return NGX_ERROR; |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
958 } |
3543
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
959 #endif |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
960 |
3546
3a9fca8cbdfc
simplify binary little endian length processing
Igor Sysoev <igor@sysoev.ru>
parents:
3545
diff
changeset
|
961 b = ngx_create_temp_buf(r->pool, len + 4); |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
962 if (b == NULL) { |
3542
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
963 return NGX_ERROR; |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
964 } |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
965 |
3543
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
966 cl = ngx_alloc_chain_link(r->pool); |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
967 if (cl == NULL) { |
3542
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
968 return NGX_ERROR; |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
969 } |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
970 |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
971 cl->buf = b; |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
972 |
3552
40eba0271b1d
improve uwsgi_modifierX processing:
Igor Sysoev <igor@sysoev.ru>
parents:
3551
diff
changeset
|
973 *b->last++ = (u_char) uwcf->modifier1; |
3546
3a9fca8cbdfc
simplify binary little endian length processing
Igor Sysoev <igor@sysoev.ru>
parents:
3545
diff
changeset
|
974 *b->last++ = (u_char) (len & 0xff); |
3a9fca8cbdfc
simplify binary little endian length processing
Igor Sysoev <igor@sysoev.ru>
parents:
3545
diff
changeset
|
975 *b->last++ = (u_char) ((len >> 8) & 0xff); |
3552
40eba0271b1d
improve uwsgi_modifierX processing:
Igor Sysoev <igor@sysoev.ru>
parents:
3551
diff
changeset
|
976 *b->last++ = (u_char) uwcf->modifier2; |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
977 |
5908
f8e80f8c7fc7
Upstream: moved header lists to separate structures.
Roman Arutyunyan <arut@nginx.com>
parents:
5907
diff
changeset
|
978 if (params->lengths) { |
3543
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
979 ngx_memzero(&e, sizeof(ngx_http_script_engine_t)); |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
980 |
5908
f8e80f8c7fc7
Upstream: moved header lists to separate structures.
Roman Arutyunyan <arut@nginx.com>
parents:
5907
diff
changeset
|
981 e.ip = params->values->elts; |
3542
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
982 e.pos = b->last; |
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
983 e.request = r; |
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
984 e.flushed = 1; |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
985 |
5908
f8e80f8c7fc7
Upstream: moved header lists to separate structures.
Roman Arutyunyan <arut@nginx.com>
parents:
5907
diff
changeset
|
986 le.ip = params->lengths->elts; |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
987 |
3542
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
988 while (*(uintptr_t *) le.ip) { |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
989 |
3542
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
990 lcode = *(ngx_http_script_len_code_pt *) le.ip; |
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
991 key_len = (u_char) lcode (&le); |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
992 |
4330
5ee5ddec17b1
uwsgi: added "if_not_empty" flag support to the "uwsgi_param" directive.
Valentin Bartenev <vbart@nginx.com>
parents:
4278
diff
changeset
|
993 lcode = *(ngx_http_script_len_code_pt *) le.ip; |
5ee5ddec17b1
uwsgi: added "if_not_empty" flag support to the "uwsgi_param" directive.
Valentin Bartenev <vbart@nginx.com>
parents:
4278
diff
changeset
|
994 skip_empty = lcode(&le); |
5ee5ddec17b1
uwsgi: added "if_not_empty" flag support to the "uwsgi_param" directive.
Valentin Bartenev <vbart@nginx.com>
parents:
4278
diff
changeset
|
995 |
3543
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
996 for (val_len = 0; *(uintptr_t *) le.ip; val_len += lcode(&le)) { |
3542
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
997 lcode = *(ngx_http_script_len_code_pt *) le.ip; |
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
998 } |
3543
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
999 le.ip += sizeof(uintptr_t); |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
1000 |
4330
5ee5ddec17b1
uwsgi: added "if_not_empty" flag support to the "uwsgi_param" directive.
Valentin Bartenev <vbart@nginx.com>
parents:
4278
diff
changeset
|
1001 if (skip_empty && val_len == 0) { |
5ee5ddec17b1
uwsgi: added "if_not_empty" flag support to the "uwsgi_param" directive.
Valentin Bartenev <vbart@nginx.com>
parents:
4278
diff
changeset
|
1002 e.skip = 1; |
5ee5ddec17b1
uwsgi: added "if_not_empty" flag support to the "uwsgi_param" directive.
Valentin Bartenev <vbart@nginx.com>
parents:
4278
diff
changeset
|
1003 |
5ee5ddec17b1
uwsgi: added "if_not_empty" flag support to the "uwsgi_param" directive.
Valentin Bartenev <vbart@nginx.com>
parents:
4278
diff
changeset
|
1004 while (*(uintptr_t *) e.ip) { |
5ee5ddec17b1
uwsgi: added "if_not_empty" flag support to the "uwsgi_param" directive.
Valentin Bartenev <vbart@nginx.com>
parents:
4278
diff
changeset
|
1005 code = *(ngx_http_script_code_pt *) e.ip; |
5ee5ddec17b1
uwsgi: added "if_not_empty" flag support to the "uwsgi_param" directive.
Valentin Bartenev <vbart@nginx.com>
parents:
4278
diff
changeset
|
1006 code((ngx_http_script_engine_t *) &e); |
5ee5ddec17b1
uwsgi: added "if_not_empty" flag support to the "uwsgi_param" directive.
Valentin Bartenev <vbart@nginx.com>
parents:
4278
diff
changeset
|
1007 } |
5ee5ddec17b1
uwsgi: added "if_not_empty" flag support to the "uwsgi_param" directive.
Valentin Bartenev <vbart@nginx.com>
parents:
4278
diff
changeset
|
1008 e.ip += sizeof(uintptr_t); |
5ee5ddec17b1
uwsgi: added "if_not_empty" flag support to the "uwsgi_param" directive.
Valentin Bartenev <vbart@nginx.com>
parents:
4278
diff
changeset
|
1009 |
5ee5ddec17b1
uwsgi: added "if_not_empty" flag support to the "uwsgi_param" directive.
Valentin Bartenev <vbart@nginx.com>
parents:
4278
diff
changeset
|
1010 e.skip = 0; |
5ee5ddec17b1
uwsgi: added "if_not_empty" flag support to the "uwsgi_param" directive.
Valentin Bartenev <vbart@nginx.com>
parents:
4278
diff
changeset
|
1011 |
5ee5ddec17b1
uwsgi: added "if_not_empty" flag support to the "uwsgi_param" directive.
Valentin Bartenev <vbart@nginx.com>
parents:
4278
diff
changeset
|
1012 continue; |
5ee5ddec17b1
uwsgi: added "if_not_empty" flag support to the "uwsgi_param" directive.
Valentin Bartenev <vbart@nginx.com>
parents:
4278
diff
changeset
|
1013 } |
5ee5ddec17b1
uwsgi: added "if_not_empty" flag support to the "uwsgi_param" directive.
Valentin Bartenev <vbart@nginx.com>
parents:
4278
diff
changeset
|
1014 |
3546
3a9fca8cbdfc
simplify binary little endian length processing
Igor Sysoev <igor@sysoev.ru>
parents:
3545
diff
changeset
|
1015 *e.pos++ = (u_char) (key_len & 0xff); |
3a9fca8cbdfc
simplify binary little endian length processing
Igor Sysoev <igor@sysoev.ru>
parents:
3545
diff
changeset
|
1016 *e.pos++ = (u_char) ((key_len >> 8) & 0xff); |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
1017 |
3547
c2da61796410
remove useless copy: key name should be just copied before value length
Igor Sysoev <igor@sysoev.ru>
parents:
3546
diff
changeset
|
1018 code = *(ngx_http_script_code_pt *) e.ip; |
c2da61796410
remove useless copy: key name should be just copied before value length
Igor Sysoev <igor@sysoev.ru>
parents:
3546
diff
changeset
|
1019 code((ngx_http_script_engine_t *) & e); |
c2da61796410
remove useless copy: key name should be just copied before value length
Igor Sysoev <igor@sysoev.ru>
parents:
3546
diff
changeset
|
1020 |
c2da61796410
remove useless copy: key name should be just copied before value length
Igor Sysoev <igor@sysoev.ru>
parents:
3546
diff
changeset
|
1021 *e.pos++ = (u_char) (val_len & 0xff); |
c2da61796410
remove useless copy: key name should be just copied before value length
Igor Sysoev <igor@sysoev.ru>
parents:
3546
diff
changeset
|
1022 *e.pos++ = (u_char) ((val_len >> 8) & 0xff); |
c2da61796410
remove useless copy: key name should be just copied before value length
Igor Sysoev <igor@sysoev.ru>
parents:
3546
diff
changeset
|
1023 |
3542
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
1024 while (*(uintptr_t *) e.ip) { |
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
1025 code = *(ngx_http_script_code_pt *) e.ip; |
3543
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
1026 code((ngx_http_script_engine_t *) & e); |
3542
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
1027 } |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
1028 |
3543
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
1029 e.ip += sizeof(uintptr_t); |
3564
3da009cc90f3
add uwsgi_param and client request headers debug logging
Igor Sysoev <igor@sysoev.ru>
parents:
3556
diff
changeset
|
1030 |
3da009cc90f3
add uwsgi_param and client request headers debug logging
Igor Sysoev <igor@sysoev.ru>
parents:
3556
diff
changeset
|
1031 ngx_log_debug4(NGX_LOG_DEBUG_HTTP, r->connection->log, 0, |
3da009cc90f3
add uwsgi_param and client request headers debug logging
Igor Sysoev <igor@sysoev.ru>
parents:
3556
diff
changeset
|
1032 "uwsgi param: \"%*s: %*s\"", |
3da009cc90f3
add uwsgi_param and client request headers debug logging
Igor Sysoev <igor@sysoev.ru>
parents:
3556
diff
changeset
|
1033 key_len, e.pos - (key_len + 2 + val_len), |
3da009cc90f3
add uwsgi_param and client request headers debug logging
Igor Sysoev <igor@sysoev.ru>
parents:
3556
diff
changeset
|
1034 val_len, e.pos - val_len); |
3542
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
1035 } |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
1036 |
3542
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
1037 b->last = e.pos; |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
1038 } |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
1039 |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
1040 if (uwcf->upstream.pass_request_headers) { |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
1041 |
3542
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
1042 part = &r->headers_in.headers.part; |
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
1043 header = part->elts; |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
1044 |
3542
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
1045 for (i = 0; /* void */ ; i++) { |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
1046 |
3542
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
1047 if (i >= part->nelts) { |
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
1048 if (part->next == NULL) { |
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
1049 break; |
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
1050 } |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
1051 |
3542
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
1052 part = part->next; |
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
1053 header = part->elts; |
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
1054 i = 0; |
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
1055 } |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
1056 |
3566
b81d44244cb1
allow uwsgi_param to override client headers using HTTP_ parameters
Igor Sysoev <igor@sysoev.ru>
parents:
3565
diff
changeset
|
1057 for (n = 0; n < header_params; n++) { |
b81d44244cb1
allow uwsgi_param to override client headers using HTTP_ parameters
Igor Sysoev <igor@sysoev.ru>
parents:
3565
diff
changeset
|
1058 if (&header[i] == ignored[n]) { |
b81d44244cb1
allow uwsgi_param to override client headers using HTTP_ parameters
Igor Sysoev <igor@sysoev.ru>
parents:
3565
diff
changeset
|
1059 goto next; |
b81d44244cb1
allow uwsgi_param to override client headers using HTTP_ parameters
Igor Sysoev <igor@sysoev.ru>
parents:
3565
diff
changeset
|
1060 } |
b81d44244cb1
allow uwsgi_param to override client headers using HTTP_ parameters
Igor Sysoev <igor@sysoev.ru>
parents:
3565
diff
changeset
|
1061 } |
b81d44244cb1
allow uwsgi_param to override client headers using HTTP_ parameters
Igor Sysoev <igor@sysoev.ru>
parents:
3565
diff
changeset
|
1062 |
b81d44244cb1
allow uwsgi_param to override client headers using HTTP_ parameters
Igor Sysoev <igor@sysoev.ru>
parents:
3565
diff
changeset
|
1063 key_len = sizeof("HTTP_") - 1 + header[i].key.len; |
3546
3a9fca8cbdfc
simplify binary little endian length processing
Igor Sysoev <igor@sysoev.ru>
parents:
3545
diff
changeset
|
1064 *b->last++ = (u_char) (key_len & 0xff); |
3a9fca8cbdfc
simplify binary little endian length processing
Igor Sysoev <igor@sysoev.ru>
parents:
3545
diff
changeset
|
1065 *b->last++ = (u_char) ((key_len >> 8) & 0xff); |
3a9fca8cbdfc
simplify binary little endian length processing
Igor Sysoev <igor@sysoev.ru>
parents:
3545
diff
changeset
|
1066 |
3566
b81d44244cb1
allow uwsgi_param to override client headers using HTTP_ parameters
Igor Sysoev <igor@sysoev.ru>
parents:
3565
diff
changeset
|
1067 b->last = ngx_cpymem(b->last, "HTTP_", sizeof("HTTP_") - 1); |
3542
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
1068 for (n = 0; n < header[i].key.len; n++) { |
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
1069 ch = header[i].key.data[n]; |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
1070 |
3542
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
1071 if (ch >= 'a' && ch <= 'z') { |
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
1072 ch &= ~0x20; |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
1073 |
3543
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
1074 } else if (ch == '-') { |
3542
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
1075 ch = '_'; |
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
1076 } |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
1077 |
3542
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
1078 *b->last++ = ch; |
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
1079 } |
3546
3a9fca8cbdfc
simplify binary little endian length processing
Igor Sysoev <igor@sysoev.ru>
parents:
3545
diff
changeset
|
1080 |
3a9fca8cbdfc
simplify binary little endian length processing
Igor Sysoev <igor@sysoev.ru>
parents:
3545
diff
changeset
|
1081 val_len = header[i].value.len; |
3a9fca8cbdfc
simplify binary little endian length processing
Igor Sysoev <igor@sysoev.ru>
parents:
3545
diff
changeset
|
1082 *b->last++ = (u_char) (val_len & 0xff); |
3a9fca8cbdfc
simplify binary little endian length processing
Igor Sysoev <igor@sysoev.ru>
parents:
3545
diff
changeset
|
1083 *b->last++ = (u_char) ((val_len >> 8) & 0xff); |
3a9fca8cbdfc
simplify binary little endian length processing
Igor Sysoev <igor@sysoev.ru>
parents:
3545
diff
changeset
|
1084 b->last = ngx_copy(b->last, header[i].value.data, val_len); |
3564
3da009cc90f3
add uwsgi_param and client request headers debug logging
Igor Sysoev <igor@sysoev.ru>
parents:
3556
diff
changeset
|
1085 |
3da009cc90f3
add uwsgi_param and client request headers debug logging
Igor Sysoev <igor@sysoev.ru>
parents:
3556
diff
changeset
|
1086 ngx_log_debug4(NGX_LOG_DEBUG_HTTP, r->connection->log, 0, |
3da009cc90f3
add uwsgi_param and client request headers debug logging
Igor Sysoev <igor@sysoev.ru>
parents:
3556
diff
changeset
|
1087 "uwsgi param: \"%*s: %*s\"", |
3da009cc90f3
add uwsgi_param and client request headers debug logging
Igor Sysoev <igor@sysoev.ru>
parents:
3556
diff
changeset
|
1088 key_len, b->last - (key_len + 2 + val_len), |
3da009cc90f3
add uwsgi_param and client request headers debug logging
Igor Sysoev <igor@sysoev.ru>
parents:
3556
diff
changeset
|
1089 val_len, b->last - val_len); |
3566
b81d44244cb1
allow uwsgi_param to override client headers using HTTP_ parameters
Igor Sysoev <igor@sysoev.ru>
parents:
3565
diff
changeset
|
1090 next: |
b81d44244cb1
allow uwsgi_param to override client headers using HTTP_ parameters
Igor Sysoev <igor@sysoev.ru>
parents:
3565
diff
changeset
|
1091 |
b81d44244cb1
allow uwsgi_param to override client headers using HTTP_ parameters
Igor Sysoev <igor@sysoev.ru>
parents:
3565
diff
changeset
|
1092 continue; |
3542
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
1093 } |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
1094 } |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
1095 |
3555
bc734cf061b0
improve uwsgi_string processing
Igor Sysoev <igor@sysoev.ru>
parents:
3554
diff
changeset
|
1096 b->last = ngx_copy(b->last, uwcf->uwsgi_string.data, |
bc734cf061b0
improve uwsgi_string processing
Igor Sysoev <igor@sysoev.ru>
parents:
3554
diff
changeset
|
1097 uwcf->uwsgi_string.len); |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
1098 |
6053
b6eb6ec4fbd9
Upstream: uwsgi_request_buffering, scgi_request_buffering.
Maxim Dounin <mdounin@mdounin.ru>
parents:
5951
diff
changeset
|
1099 if (r->request_body_no_buffering) { |
b6eb6ec4fbd9
Upstream: uwsgi_request_buffering, scgi_request_buffering.
Maxim Dounin <mdounin@mdounin.ru>
parents:
5951
diff
changeset
|
1100 r->upstream->request_bufs = cl; |
b6eb6ec4fbd9
Upstream: uwsgi_request_buffering, scgi_request_buffering.
Maxim Dounin <mdounin@mdounin.ru>
parents:
5951
diff
changeset
|
1101 |
b6eb6ec4fbd9
Upstream: uwsgi_request_buffering, scgi_request_buffering.
Maxim Dounin <mdounin@mdounin.ru>
parents:
5951
diff
changeset
|
1102 } else if (uwcf->upstream.pass_request_body) { |
3542
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
1103 body = r->upstream->request_bufs; |
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
1104 r->upstream->request_bufs = cl; |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
1105 |
3542
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
1106 while (body) { |
3543
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
1107 b = ngx_alloc_buf(r->pool); |
3542
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
1108 if (b == NULL) { |
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
1109 return NGX_ERROR; |
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
1110 } |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
1111 |
3543
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
1112 ngx_memcpy(b, body->buf, sizeof(ngx_buf_t)); |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
1113 |
3543
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
1114 cl->next = ngx_alloc_chain_link(r->pool); |
3542
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
1115 if (cl->next == NULL) { |
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
1116 return NGX_ERROR; |
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
1117 } |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
1118 |
3542
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
1119 cl = cl->next; |
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
1120 cl->buf = b; |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
1121 |
3542
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
1122 body = body->next; |
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
1123 } |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
1124 |
3543
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
1125 } else { |
3542
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
1126 r->upstream->request_bufs = cl; |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
1127 } |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
1128 |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
1129 cl->next = NULL; |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
1130 |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
1131 return NGX_OK; |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
1132 } |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
1133 |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
1134 |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
1135 static ngx_int_t |
3543
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
1136 ngx_http_uwsgi_reinit_request(ngx_http_request_t *r) |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
1137 { |
3629 | 1138 ngx_http_status_t *status; |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
1139 |
3629 | 1140 status = ngx_http_get_module_ctx(r, ngx_http_uwsgi_module); |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
1141 |
3629 | 1142 if (status == NULL) { |
3542
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
1143 return NGX_OK; |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
1144 } |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
1145 |
3629 | 1146 status->code = 0; |
1147 status->count = 0; | |
1148 status->start = NULL; | |
1149 status->end = NULL; | |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
1150 |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
1151 r->upstream->process_header = ngx_http_uwsgi_process_status_line; |
4615
adcd60233817
Added r->state reset on fastcgi/scgi/uwsgi request start.
Maxim Dounin <mdounin@mdounin.ru>
parents:
4593
diff
changeset
|
1152 r->state = 0; |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
1153 |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
1154 return NGX_OK; |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
1155 } |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
1156 |
3623 | 1157 |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
1158 static ngx_int_t |
3543
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
1159 ngx_http_uwsgi_process_status_line(ngx_http_request_t *r) |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
1160 { |
3628 | 1161 size_t len; |
3623 | 1162 ngx_int_t rc; |
3630 | 1163 ngx_http_status_t *status; |
3543
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
1164 ngx_http_upstream_t *u; |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
1165 |
3627
9061fdb2ed8c
use ngx_http_parse_status_line()
Igor Sysoev <igor@sysoev.ru>
parents:
3625
diff
changeset
|
1166 status = ngx_http_get_module_ctx(r, ngx_http_uwsgi_module); |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
1167 |
3627
9061fdb2ed8c
use ngx_http_parse_status_line()
Igor Sysoev <igor@sysoev.ru>
parents:
3625
diff
changeset
|
1168 if (status == NULL) { |
3542
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
1169 return NGX_ERROR; |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
1170 } |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
1171 |
3627
9061fdb2ed8c
use ngx_http_parse_status_line()
Igor Sysoev <igor@sysoev.ru>
parents:
3625
diff
changeset
|
1172 u = r->upstream; |
9061fdb2ed8c
use ngx_http_parse_status_line()
Igor Sysoev <igor@sysoev.ru>
parents:
3625
diff
changeset
|
1173 |
9061fdb2ed8c
use ngx_http_parse_status_line()
Igor Sysoev <igor@sysoev.ru>
parents:
3625
diff
changeset
|
1174 rc = ngx_http_parse_status_line(r, &u->buffer, status); |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
1175 |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
1176 if (rc == NGX_AGAIN) { |
3542
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
1177 return rc; |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
1178 } |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
1179 |
3627
9061fdb2ed8c
use ngx_http_parse_status_line()
Igor Sysoev <igor@sysoev.ru>
parents:
3625
diff
changeset
|
1180 if (rc == NGX_ERROR) { |
3624 | 1181 u->process_header = ngx_http_uwsgi_process_header; |
1182 return ngx_http_uwsgi_process_header(r); | |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
1183 } |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
1184 |
5575
d15822784cf9
Upstream: fix $upstream_status variable.
Piotr Sikora <piotr@cloudflare.com>
parents:
5496
diff
changeset
|
1185 if (u->state && u->state->status == 0) { |
3627
9061fdb2ed8c
use ngx_http_parse_status_line()
Igor Sysoev <igor@sysoev.ru>
parents:
3625
diff
changeset
|
1186 u->state->status = status->code; |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
1187 } |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
1188 |
3627
9061fdb2ed8c
use ngx_http_parse_status_line()
Igor Sysoev <igor@sysoev.ru>
parents:
3625
diff
changeset
|
1189 u->headers_in.status_n = status->code; |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
1190 |
3628 | 1191 len = status->end - status->start; |
1192 u->headers_in.status_line.len = len; | |
1193 | |
1194 u->headers_in.status_line.data = ngx_pnalloc(r->pool, len); | |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
1195 if (u->headers_in.status_line.data == NULL) { |
3542
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
1196 return NGX_ERROR; |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
1197 } |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
1198 |
3628 | 1199 ngx_memcpy(u->headers_in.status_line.data, status->start, len); |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
1200 |
3543
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
1201 ngx_log_debug2(NGX_LOG_DEBUG_HTTP, r->connection->log, 0, |
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
1202 "http uwsgi status %ui \"%V\"", |
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
1203 u->headers_in.status_n, &u->headers_in.status_line); |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
1204 |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
1205 u->process_header = ngx_http_uwsgi_process_header; |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
1206 |
3543
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
1207 return ngx_http_uwsgi_process_header(r); |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
1208 } |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
1209 |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
1210 |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
1211 static ngx_int_t |
3543
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
1212 ngx_http_uwsgi_process_header(ngx_http_request_t *r) |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
1213 { |
3624 | 1214 ngx_str_t *status_line; |
1215 ngx_int_t rc, status; | |
3543
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
1216 ngx_table_elt_t *h; |
3624 | 1217 ngx_http_upstream_t *u; |
3543
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
1218 ngx_http_upstream_header_t *hh; |
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
1219 ngx_http_upstream_main_conf_t *umcf; |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
1220 |
3543
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
1221 umcf = ngx_http_get_module_main_conf(r, ngx_http_upstream_module); |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
1222 |
3543
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
1223 for ( ;; ) { |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
1224 |
3543
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
1225 rc = ngx_http_parse_header_line(r, &r->upstream->buffer, 1); |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
1226 |
3542
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
1227 if (rc == NGX_OK) { |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
1228 |
3542
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
1229 /* a header line has been parsed successfully */ |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
1230 |
3543
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
1231 h = ngx_list_push(&r->upstream->headers_in.headers); |
3542
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
1232 if (h == NULL) { |
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
1233 return NGX_ERROR; |
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
1234 } |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
1235 |
3542
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
1236 h->hash = r->header_hash; |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
1237 |
3542
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
1238 h->key.len = r->header_name_end - r->header_name_start; |
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
1239 h->value.len = r->header_end - r->header_start; |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
1240 |
3543
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
1241 h->key.data = ngx_pnalloc(r->pool, |
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
1242 h->key.len + 1 + h->value.len + 1 |
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
1243 + h->key.len); |
3542
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
1244 if (h->key.data == NULL) { |
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
1245 return NGX_ERROR; |
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
1246 } |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
1247 |
3542
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
1248 h->value.data = h->key.data + h->key.len + 1; |
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
1249 h->lowcase_key = h->key.data + h->key.len + 1 + h->value.len + 1; |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
1250 |
4529
1ebec1d15a25
Fixed incorrect ngx_cpystrn() usage in ngx_http_*_process_header().
Maxim Dounin <mdounin@mdounin.ru>
parents:
4527
diff
changeset
|
1251 ngx_memcpy(h->key.data, r->header_name_start, h->key.len); |
1ebec1d15a25
Fixed incorrect ngx_cpystrn() usage in ngx_http_*_process_header().
Maxim Dounin <mdounin@mdounin.ru>
parents:
4527
diff
changeset
|
1252 h->key.data[h->key.len] = '\0'; |
1ebec1d15a25
Fixed incorrect ngx_cpystrn() usage in ngx_http_*_process_header().
Maxim Dounin <mdounin@mdounin.ru>
parents:
4527
diff
changeset
|
1253 ngx_memcpy(h->value.data, r->header_start, h->value.len); |
1ebec1d15a25
Fixed incorrect ngx_cpystrn() usage in ngx_http_*_process_header().
Maxim Dounin <mdounin@mdounin.ru>
parents:
4527
diff
changeset
|
1254 h->value.data[h->value.len] = '\0'; |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
1255 |
3542
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
1256 if (h->key.len == r->lowcase_index) { |
3543
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
1257 ngx_memcpy(h->lowcase_key, r->lowcase_header, h->key.len); |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
1258 |
3543
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
1259 } else { |
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
1260 ngx_strlow(h->lowcase_key, h->key.data, h->key.len); |
3542
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
1261 } |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
1262 |
3543
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
1263 hh = ngx_hash_find(&umcf->headers_in_hash, h->hash, |
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
1264 h->lowcase_key, h->key.len); |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
1265 |
3543
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
1266 if (hh && hh->handler(r, h, hh->offset) != NGX_OK) { |
3542
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
1267 return NGX_ERROR; |
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
1268 } |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
1269 |
3543
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
1270 ngx_log_debug2(NGX_LOG_DEBUG_HTTP, r->connection->log, 0, |
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
1271 "http uwsgi header: \"%V: %V\"", &h->key, &h->value); |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
1272 |
3542
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
1273 continue; |
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
1274 } |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
1275 |
3542
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
1276 if (rc == NGX_HTTP_PARSE_HEADER_DONE) { |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
1277 |
3542
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
1278 /* a whole header has been parsed successfully */ |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
1279 |
3543
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
1280 ngx_log_debug0(NGX_LOG_DEBUG_HTTP, r->connection->log, 0, |
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
1281 "http uwsgi header done"); |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
1282 |
4527
9c3a2fc3c460
Uwsgi: merged r->http_version fixes from scgi module.
Maxim Dounin <mdounin@mdounin.ru>
parents:
4522
diff
changeset
|
1283 u = r->upstream; |
9c3a2fc3c460
Uwsgi: merged r->http_version fixes from scgi module.
Maxim Dounin <mdounin@mdounin.ru>
parents:
4522
diff
changeset
|
1284 |
9c3a2fc3c460
Uwsgi: merged r->http_version fixes from scgi module.
Maxim Dounin <mdounin@mdounin.ru>
parents:
4522
diff
changeset
|
1285 if (u->headers_in.status_n) { |
5078
10c74d3b15d1
Connection upgrade support in uwsgi and scgi modules.
Maxim Dounin <mdounin@mdounin.ru>
parents:
5008
diff
changeset
|
1286 goto done; |
3624 | 1287 } |
1288 | |
1289 if (u->headers_in.status) { | |
1290 status_line = &u->headers_in.status->value; | |
1291 | |
1292 status = ngx_atoi(status_line->data, 3); | |
1293 if (status == NGX_ERROR) { | |
1294 ngx_log_error(NGX_LOG_ERR, r->connection->log, 0, | |
1295 "upstream sent invalid status \"%V\"", | |
1296 status_line); | |
1297 return NGX_HTTP_UPSTREAM_INVALID_HEADER; | |
1298 } | |
1299 | |
1300 u->headers_in.status_n = status; | |
1301 u->headers_in.status_line = *status_line; | |
1302 | |
1303 } else if (u->headers_in.location) { | |
1304 u->headers_in.status_n = 302; | |
1305 ngx_str_set(&u->headers_in.status_line, | |
1306 "302 Moved Temporarily"); | |
1307 | |
1308 } else { | |
1309 u->headers_in.status_n = 200; | |
1310 ngx_str_set(&u->headers_in.status_line, "200 OK"); | |
1311 } | |
1312 | |
5575
d15822784cf9
Upstream: fix $upstream_status variable.
Piotr Sikora <piotr@cloudflare.com>
parents:
5496
diff
changeset
|
1313 if (u->state && u->state->status == 0) { |
3624 | 1314 u->state->status = u->headers_in.status_n; |
1315 } | |
1316 | |
5078
10c74d3b15d1
Connection upgrade support in uwsgi and scgi modules.
Maxim Dounin <mdounin@mdounin.ru>
parents:
5008
diff
changeset
|
1317 done: |
10c74d3b15d1
Connection upgrade support in uwsgi and scgi modules.
Maxim Dounin <mdounin@mdounin.ru>
parents:
5008
diff
changeset
|
1318 |
10c74d3b15d1
Connection upgrade support in uwsgi and scgi modules.
Maxim Dounin <mdounin@mdounin.ru>
parents:
5008
diff
changeset
|
1319 if (u->headers_in.status_n == NGX_HTTP_SWITCHING_PROTOCOLS |
5080
8da37c1b22a4
Trailing whitespace fix.
Maxim Dounin <mdounin@mdounin.ru>
parents:
5078
diff
changeset
|
1320 && r->headers_in.upgrade) |
5078
10c74d3b15d1
Connection upgrade support in uwsgi and scgi modules.
Maxim Dounin <mdounin@mdounin.ru>
parents:
5008
diff
changeset
|
1321 { |
10c74d3b15d1
Connection upgrade support in uwsgi and scgi modules.
Maxim Dounin <mdounin@mdounin.ru>
parents:
5008
diff
changeset
|
1322 u->upgrade = 1; |
10c74d3b15d1
Connection upgrade support in uwsgi and scgi modules.
Maxim Dounin <mdounin@mdounin.ru>
parents:
5008
diff
changeset
|
1323 } |
10c74d3b15d1
Connection upgrade support in uwsgi and scgi modules.
Maxim Dounin <mdounin@mdounin.ru>
parents:
5008
diff
changeset
|
1324 |
3542
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
1325 return NGX_OK; |
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
1326 } |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
1327 |
3542
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
1328 if (rc == NGX_AGAIN) { |
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
1329 return NGX_AGAIN; |
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
1330 } |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
1331 |
3542
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
1332 /* there was error while a header line parsing */ |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
1333 |
3543
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
1334 ngx_log_error(NGX_LOG_ERR, r->connection->log, 0, |
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
1335 "upstream sent invalid header"); |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
1336 |
3542
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
1337 return NGX_HTTP_UPSTREAM_INVALID_HEADER; |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
1338 } |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
1339 } |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
1340 |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
1341 |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
1342 static void |
3543
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
1343 ngx_http_uwsgi_abort_request(ngx_http_request_t *r) |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
1344 { |
3543
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
1345 ngx_log_debug0(NGX_LOG_DEBUG_HTTP, r->connection->log, 0, |
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
1346 "abort http uwsgi request"); |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
1347 |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
1348 return; |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
1349 } |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
1350 |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
1351 |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
1352 static void |
3543
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
1353 ngx_http_uwsgi_finalize_request(ngx_http_request_t *r, ngx_int_t rc) |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
1354 { |
3543
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
1355 ngx_log_debug0(NGX_LOG_DEBUG_HTTP, r->connection->log, 0, |
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
1356 "finalize http uwsgi request"); |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
1357 |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
1358 return; |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
1359 } |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
1360 |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
1361 |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
1362 static void * |
5951
610832763648
Upstream: added variables support to proxy_cache and friends.
Valentin Bartenev <vbart@nginx.com>
parents:
5949
diff
changeset
|
1363 ngx_http_uwsgi_create_main_conf(ngx_conf_t *cf) |
610832763648
Upstream: added variables support to proxy_cache and friends.
Valentin Bartenev <vbart@nginx.com>
parents:
5949
diff
changeset
|
1364 { |
610832763648
Upstream: added variables support to proxy_cache and friends.
Valentin Bartenev <vbart@nginx.com>
parents:
5949
diff
changeset
|
1365 ngx_http_uwsgi_main_conf_t *conf; |
610832763648
Upstream: added variables support to proxy_cache and friends.
Valentin Bartenev <vbart@nginx.com>
parents:
5949
diff
changeset
|
1366 |
610832763648
Upstream: added variables support to proxy_cache and friends.
Valentin Bartenev <vbart@nginx.com>
parents:
5949
diff
changeset
|
1367 conf = ngx_pcalloc(cf->pool, sizeof(ngx_http_uwsgi_main_conf_t)); |
610832763648
Upstream: added variables support to proxy_cache and friends.
Valentin Bartenev <vbart@nginx.com>
parents:
5949
diff
changeset
|
1368 if (conf == NULL) { |
610832763648
Upstream: added variables support to proxy_cache and friends.
Valentin Bartenev <vbart@nginx.com>
parents:
5949
diff
changeset
|
1369 return NULL; |
610832763648
Upstream: added variables support to proxy_cache and friends.
Valentin Bartenev <vbart@nginx.com>
parents:
5949
diff
changeset
|
1370 } |
610832763648
Upstream: added variables support to proxy_cache and friends.
Valentin Bartenev <vbart@nginx.com>
parents:
5949
diff
changeset
|
1371 |
610832763648
Upstream: added variables support to proxy_cache and friends.
Valentin Bartenev <vbart@nginx.com>
parents:
5949
diff
changeset
|
1372 #if (NGX_HTTP_CACHE) |
610832763648
Upstream: added variables support to proxy_cache and friends.
Valentin Bartenev <vbart@nginx.com>
parents:
5949
diff
changeset
|
1373 if (ngx_array_init(&conf->caches, cf->pool, 4, |
610832763648
Upstream: added variables support to proxy_cache and friends.
Valentin Bartenev <vbart@nginx.com>
parents:
5949
diff
changeset
|
1374 sizeof(ngx_http_file_cache_t *)) |
610832763648
Upstream: added variables support to proxy_cache and friends.
Valentin Bartenev <vbart@nginx.com>
parents:
5949
diff
changeset
|
1375 != NGX_OK) |
610832763648
Upstream: added variables support to proxy_cache and friends.
Valentin Bartenev <vbart@nginx.com>
parents:
5949
diff
changeset
|
1376 { |
610832763648
Upstream: added variables support to proxy_cache and friends.
Valentin Bartenev <vbart@nginx.com>
parents:
5949
diff
changeset
|
1377 return NULL; |
610832763648
Upstream: added variables support to proxy_cache and friends.
Valentin Bartenev <vbart@nginx.com>
parents:
5949
diff
changeset
|
1378 } |
610832763648
Upstream: added variables support to proxy_cache and friends.
Valentin Bartenev <vbart@nginx.com>
parents:
5949
diff
changeset
|
1379 #endif |
610832763648
Upstream: added variables support to proxy_cache and friends.
Valentin Bartenev <vbart@nginx.com>
parents:
5949
diff
changeset
|
1380 |
610832763648
Upstream: added variables support to proxy_cache and friends.
Valentin Bartenev <vbart@nginx.com>
parents:
5949
diff
changeset
|
1381 return conf; |
610832763648
Upstream: added variables support to proxy_cache and friends.
Valentin Bartenev <vbart@nginx.com>
parents:
5949
diff
changeset
|
1382 } |
610832763648
Upstream: added variables support to proxy_cache and friends.
Valentin Bartenev <vbart@nginx.com>
parents:
5949
diff
changeset
|
1383 |
610832763648
Upstream: added variables support to proxy_cache and friends.
Valentin Bartenev <vbart@nginx.com>
parents:
5949
diff
changeset
|
1384 |
610832763648
Upstream: added variables support to proxy_cache and friends.
Valentin Bartenev <vbart@nginx.com>
parents:
5949
diff
changeset
|
1385 static void * |
3543
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
1386 ngx_http_uwsgi_create_loc_conf(ngx_conf_t *cf) |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
1387 { |
3543
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
1388 ngx_http_uwsgi_loc_conf_t *conf; |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
1389 |
3543
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
1390 conf = ngx_pcalloc(cf->pool, sizeof(ngx_http_uwsgi_loc_conf_t)); |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
1391 if (conf == NULL) { |
3542
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
1392 return NULL; |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
1393 } |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
1394 |
3552
40eba0271b1d
improve uwsgi_modifierX processing:
Igor Sysoev <igor@sysoev.ru>
parents:
3551
diff
changeset
|
1395 conf->modifier1 = NGX_CONF_UNSET_UINT; |
40eba0271b1d
improve uwsgi_modifierX processing:
Igor Sysoev <igor@sysoev.ru>
parents:
3551
diff
changeset
|
1396 conf->modifier2 = NGX_CONF_UNSET_UINT; |
40eba0271b1d
improve uwsgi_modifierX processing:
Igor Sysoev <igor@sysoev.ru>
parents:
3551
diff
changeset
|
1397 |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
1398 conf->upstream.store = NGX_CONF_UNSET; |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
1399 conf->upstream.store_access = NGX_CONF_UNSET_UINT; |
5832
d09b689911ac
Upstream: limited next_upstream time and tries (ticket #544).
Roman Arutyunyan <arut@nginx.com>
parents:
5829
diff
changeset
|
1400 conf->upstream.next_upstream_tries = NGX_CONF_UNSET_UINT; |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
1401 conf->upstream.buffering = NGX_CONF_UNSET; |
6053
b6eb6ec4fbd9
Upstream: uwsgi_request_buffering, scgi_request_buffering.
Maxim Dounin <mdounin@mdounin.ru>
parents:
5951
diff
changeset
|
1402 conf->upstream.request_buffering = NGX_CONF_UNSET; |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
1403 conf->upstream.ignore_client_abort = NGX_CONF_UNSET; |
5874
2aff40b3dea2
Upstream: proxy_force_ranges and friends.
Roman Arutyunyan <arut@nginx.com>
parents:
5832
diff
changeset
|
1404 conf->upstream.force_ranges = NGX_CONF_UNSET; |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
1405 |
5008
fd84344f1df7
Fixed and improved the "*_bind" directives of proxying modules.
Ruslan Ermilov <ru@nginx.com>
parents:
4947
diff
changeset
|
1406 conf->upstream.local = NGX_CONF_UNSET_PTR; |
fd84344f1df7
Fixed and improved the "*_bind" directives of proxying modules.
Ruslan Ermilov <ru@nginx.com>
parents:
4947
diff
changeset
|
1407 |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
1408 conf->upstream.connect_timeout = NGX_CONF_UNSET_MSEC; |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
1409 conf->upstream.send_timeout = NGX_CONF_UNSET_MSEC; |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
1410 conf->upstream.read_timeout = NGX_CONF_UNSET_MSEC; |
5832
d09b689911ac
Upstream: limited next_upstream time and tries (ticket #544).
Roman Arutyunyan <arut@nginx.com>
parents:
5829
diff
changeset
|
1411 conf->upstream.next_upstream_timeout = NGX_CONF_UNSET_MSEC; |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
1412 |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
1413 conf->upstream.send_lowat = NGX_CONF_UNSET_SIZE; |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
1414 conf->upstream.buffer_size = NGX_CONF_UNSET_SIZE; |
5883
973ee2276300
Upstream: proxy_limit_rate and friends.
Roman Arutyunyan <arut@nginx.com>
parents:
5874
diff
changeset
|
1415 conf->upstream.limit_rate = NGX_CONF_UNSET_SIZE; |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
1416 |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
1417 conf->upstream.busy_buffers_size_conf = NGX_CONF_UNSET_SIZE; |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
1418 conf->upstream.max_temp_file_size_conf = NGX_CONF_UNSET_SIZE; |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
1419 conf->upstream.temp_file_write_size_conf = NGX_CONF_UNSET_SIZE; |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
1420 |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
1421 conf->upstream.pass_request_headers = NGX_CONF_UNSET; |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
1422 conf->upstream.pass_request_body = NGX_CONF_UNSET; |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
1423 |
3568 | 1424 #if (NGX_HTTP_CACHE) |
5949
634da79665d3
Upstream: refactored proxy_cache and friends.
Valentin Bartenev <vbart@nginx.com>
parents:
5948
diff
changeset
|
1425 conf->upstream.cache = NGX_CONF_UNSET; |
3568 | 1426 conf->upstream.cache_min_uses = NGX_CONF_UNSET_UINT; |
6793
0fba3ed4e7eb
Cache: proxy_cache_max_range_offset and friends.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
6785
diff
changeset
|
1427 conf->upstream.cache_max_range_offset = NGX_CONF_UNSET; |
3699
b0a0686a85bb
proxy_cache_pass, fastcgi_cache_bypass, uwsgi_cache_bypass, scgi_cache_bypass
Igor Sysoev <igor@sysoev.ru>
parents:
3693
diff
changeset
|
1428 conf->upstream.cache_bypass = NGX_CONF_UNSET_PTR; |
3693
e3bcc2f4c418
fix scgi_no_cache and uwsgi_no_cache initialization
Igor Sysoev <igor@sysoev.ru>
parents:
3692
diff
changeset
|
1429 conf->upstream.no_cache = NGX_CONF_UNSET_PTR; |
3568 | 1430 conf->upstream.cache_valid = NGX_CONF_UNSET_PTR; |
4386
92deb73393f7
Cache lock support for fastcgi, scgi, uwsgi.
Maxim Dounin <mdounin@mdounin.ru>
parents:
4330
diff
changeset
|
1431 conf->upstream.cache_lock = NGX_CONF_UNSET; |
92deb73393f7
Cache lock support for fastcgi, scgi, uwsgi.
Maxim Dounin <mdounin@mdounin.ru>
parents:
4330
diff
changeset
|
1432 conf->upstream.cache_lock_timeout = NGX_CONF_UNSET_MSEC; |
5905
2f7e557eab5b
Cache: proxy_cache_lock_age and friends.
Roman Arutyunyan <arut@nginx.com>
parents:
5900
diff
changeset
|
1433 conf->upstream.cache_lock_age = NGX_CONF_UNSET_MSEC; |
5441
43ccaf8e8728
Upstream: cache revalidation with conditional requests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
5393
diff
changeset
|
1434 conf->upstream.cache_revalidate = NGX_CONF_UNSET; |
6906
1aeaae6e9446
Upstream: proxy_cache_background_update and friends.
Roman Arutyunyan <arut@nginx.com>
parents:
6793
diff
changeset
|
1435 conf->upstream.cache_background_update = NGX_CONF_UNSET; |
3568 | 1436 #endif |
1437 | |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
1438 conf->upstream.hide_headers = NGX_CONF_UNSET_PTR; |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
1439 conf->upstream.pass_headers = NGX_CONF_UNSET_PTR; |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
1440 |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
1441 conf->upstream.intercept_errors = NGX_CONF_UNSET; |
5662
3cb79707516a
Upstream: uwsgi_ssl_name, uwsgi_ssl_verify, and so on.
Maxim Dounin <mdounin@mdounin.ru>
parents:
5659
diff
changeset
|
1442 |
5457
c82b2e020b9f
SSL support in the uwsgi module.
Maxim Dounin <mdounin@mdounin.ru>
parents:
5451
diff
changeset
|
1443 #if (NGX_HTTP_SSL) |
c82b2e020b9f
SSL support in the uwsgi module.
Maxim Dounin <mdounin@mdounin.ru>
parents:
5451
diff
changeset
|
1444 conf->upstream.ssl_session_reuse = NGX_CONF_UNSET; |
5662
3cb79707516a
Upstream: uwsgi_ssl_name, uwsgi_ssl_verify, and so on.
Maxim Dounin <mdounin@mdounin.ru>
parents:
5659
diff
changeset
|
1445 conf->upstream.ssl_server_name = NGX_CONF_UNSET; |
3cb79707516a
Upstream: uwsgi_ssl_name, uwsgi_ssl_verify, and so on.
Maxim Dounin <mdounin@mdounin.ru>
parents:
5659
diff
changeset
|
1446 conf->upstream.ssl_verify = NGX_CONF_UNSET; |
3cb79707516a
Upstream: uwsgi_ssl_name, uwsgi_ssl_verify, and so on.
Maxim Dounin <mdounin@mdounin.ru>
parents:
5659
diff
changeset
|
1447 conf->ssl_verify_depth = NGX_CONF_UNSET_UINT; |
5900
20d966ad5e89
Upstream: add "proxy_ssl_certificate" and friends.
Piotr Sikora <piotr@cloudflare.com>
parents:
5883
diff
changeset
|
1448 conf->ssl_passwords = NGX_CONF_UNSET_PTR; |
5457
c82b2e020b9f
SSL support in the uwsgi module.
Maxim Dounin <mdounin@mdounin.ru>
parents:
5451
diff
changeset
|
1449 #endif |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
1450 |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
1451 /* "uwsgi_cyclic_temp_file" is disabled */ |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
1452 conf->upstream.cyclic_temp_file = 0; |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
1453 |
4157
9d59a8eda373
Added uwsgi_buffering and scgi_buffering directives.
Maxim Dounin <mdounin@mdounin.ru>
parents:
4015
diff
changeset
|
1454 conf->upstream.change_buffering = 1; |
9d59a8eda373
Added uwsgi_buffering and scgi_buffering directives.
Maxim Dounin <mdounin@mdounin.ru>
parents:
4015
diff
changeset
|
1455 |
3976
215fe9223419
update r3945 with more descriptive error message
Igor Sysoev <igor@sysoev.ru>
parents:
3879
diff
changeset
|
1456 ngx_str_set(&conf->upstream.module, "uwsgi"); |
215fe9223419
update r3945 with more descriptive error message
Igor Sysoev <igor@sysoev.ru>
parents:
3879
diff
changeset
|
1457 |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
1458 return conf; |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
1459 } |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
1460 |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
1461 |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
1462 static char * |
3543
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
1463 ngx_http_uwsgi_merge_loc_conf(ngx_conf_t *cf, void *parent, void *child) |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
1464 { |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
1465 ngx_http_uwsgi_loc_conf_t *prev = parent; |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
1466 ngx_http_uwsgi_loc_conf_t *conf = child; |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
1467 |
3543
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
1468 size_t size; |
5909
8d0cf26ce071
Upstream: different header lists for cached and uncached requests.
Roman Arutyunyan <arut@nginx.com>
parents:
5908
diff
changeset
|
1469 ngx_int_t rc; |
3543
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
1470 ngx_hash_init_t hash; |
3731
72cc5b789021
inherit proxy_pass, fastcgi_pass, uwsgi_pass, scgi_pass inside
Igor Sysoev <igor@sysoev.ru>
parents:
3729
diff
changeset
|
1471 ngx_http_core_loc_conf_t *clcf; |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
1472 |
5948
f2ff0aa89126
Upstream: mutually exclusive inheritance of "cache" and "store".
Valentin Bartenev <vbart@nginx.com>
parents:
5947
diff
changeset
|
1473 #if (NGX_HTTP_CACHE) |
f2ff0aa89126
Upstream: mutually exclusive inheritance of "cache" and "store".
Valentin Bartenev <vbart@nginx.com>
parents:
5947
diff
changeset
|
1474 |
f2ff0aa89126
Upstream: mutually exclusive inheritance of "cache" and "store".
Valentin Bartenev <vbart@nginx.com>
parents:
5947
diff
changeset
|
1475 if (conf->upstream.store > 0) { |
5949
634da79665d3
Upstream: refactored proxy_cache and friends.
Valentin Bartenev <vbart@nginx.com>
parents:
5948
diff
changeset
|
1476 conf->upstream.cache = 0; |
5948
f2ff0aa89126
Upstream: mutually exclusive inheritance of "cache" and "store".
Valentin Bartenev <vbart@nginx.com>
parents:
5947
diff
changeset
|
1477 } |
f2ff0aa89126
Upstream: mutually exclusive inheritance of "cache" and "store".
Valentin Bartenev <vbart@nginx.com>
parents:
5947
diff
changeset
|
1478 |
5949
634da79665d3
Upstream: refactored proxy_cache and friends.
Valentin Bartenev <vbart@nginx.com>
parents:
5948
diff
changeset
|
1479 if (conf->upstream.cache > 0) { |
5948
f2ff0aa89126
Upstream: mutually exclusive inheritance of "cache" and "store".
Valentin Bartenev <vbart@nginx.com>
parents:
5947
diff
changeset
|
1480 conf->upstream.store = 0; |
f2ff0aa89126
Upstream: mutually exclusive inheritance of "cache" and "store".
Valentin Bartenev <vbart@nginx.com>
parents:
5947
diff
changeset
|
1481 } |
f2ff0aa89126
Upstream: mutually exclusive inheritance of "cache" and "store".
Valentin Bartenev <vbart@nginx.com>
parents:
5947
diff
changeset
|
1482 |
f2ff0aa89126
Upstream: mutually exclusive inheritance of "cache" and "store".
Valentin Bartenev <vbart@nginx.com>
parents:
5947
diff
changeset
|
1483 #endif |
f2ff0aa89126
Upstream: mutually exclusive inheritance of "cache" and "store".
Valentin Bartenev <vbart@nginx.com>
parents:
5947
diff
changeset
|
1484 |
5940
e3b3b89d74e8
Upstream: fixed inheritance of proxy_store and friends.
Valentin Bartenev <vbart@nginx.com>
parents:
5938
diff
changeset
|
1485 if (conf->upstream.store == NGX_CONF_UNSET) { |
3543
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
1486 ngx_conf_merge_value(conf->upstream.store, prev->upstream.store, 0); |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
1487 |
5947
d9025ea1f5a5
Upstream: simplified proxy_store and friends configuration code.
Valentin Bartenev <vbart@nginx.com>
parents:
5940
diff
changeset
|
1488 conf->upstream.store_lengths = prev->upstream.store_lengths; |
d9025ea1f5a5
Upstream: simplified proxy_store and friends configuration code.
Valentin Bartenev <vbart@nginx.com>
parents:
5940
diff
changeset
|
1489 conf->upstream.store_values = prev->upstream.store_values; |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
1490 } |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
1491 |
3543
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
1492 ngx_conf_merge_uint_value(conf->upstream.store_access, |
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
1493 prev->upstream.store_access, 0600); |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
1494 |
5832
d09b689911ac
Upstream: limited next_upstream time and tries (ticket #544).
Roman Arutyunyan <arut@nginx.com>
parents:
5829
diff
changeset
|
1495 ngx_conf_merge_uint_value(conf->upstream.next_upstream_tries, |
d09b689911ac
Upstream: limited next_upstream time and tries (ticket #544).
Roman Arutyunyan <arut@nginx.com>
parents:
5829
diff
changeset
|
1496 prev->upstream.next_upstream_tries, 0); |
d09b689911ac
Upstream: limited next_upstream time and tries (ticket #544).
Roman Arutyunyan <arut@nginx.com>
parents:
5829
diff
changeset
|
1497 |
3543
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
1498 ngx_conf_merge_value(conf->upstream.buffering, |
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
1499 prev->upstream.buffering, 1); |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
1500 |
6053
b6eb6ec4fbd9
Upstream: uwsgi_request_buffering, scgi_request_buffering.
Maxim Dounin <mdounin@mdounin.ru>
parents:
5951
diff
changeset
|
1501 ngx_conf_merge_value(conf->upstream.request_buffering, |
b6eb6ec4fbd9
Upstream: uwsgi_request_buffering, scgi_request_buffering.
Maxim Dounin <mdounin@mdounin.ru>
parents:
5951
diff
changeset
|
1502 prev->upstream.request_buffering, 1); |
b6eb6ec4fbd9
Upstream: uwsgi_request_buffering, scgi_request_buffering.
Maxim Dounin <mdounin@mdounin.ru>
parents:
5951
diff
changeset
|
1503 |
3543
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
1504 ngx_conf_merge_value(conf->upstream.ignore_client_abort, |
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
1505 prev->upstream.ignore_client_abort, 0); |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
1506 |
5874
2aff40b3dea2
Upstream: proxy_force_ranges and friends.
Roman Arutyunyan <arut@nginx.com>
parents:
5832
diff
changeset
|
1507 ngx_conf_merge_value(conf->upstream.force_ranges, |
2aff40b3dea2
Upstream: proxy_force_ranges and friends.
Roman Arutyunyan <arut@nginx.com>
parents:
5832
diff
changeset
|
1508 prev->upstream.force_ranges, 0); |
2aff40b3dea2
Upstream: proxy_force_ranges and friends.
Roman Arutyunyan <arut@nginx.com>
parents:
5832
diff
changeset
|
1509 |
5008
fd84344f1df7
Fixed and improved the "*_bind" directives of proxying modules.
Ruslan Ermilov <ru@nginx.com>
parents:
4947
diff
changeset
|
1510 ngx_conf_merge_ptr_value(conf->upstream.local, |
fd84344f1df7
Fixed and improved the "*_bind" directives of proxying modules.
Ruslan Ermilov <ru@nginx.com>
parents:
4947
diff
changeset
|
1511 prev->upstream.local, NULL); |
fd84344f1df7
Fixed and improved the "*_bind" directives of proxying modules.
Ruslan Ermilov <ru@nginx.com>
parents:
4947
diff
changeset
|
1512 |
3543
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
1513 ngx_conf_merge_msec_value(conf->upstream.connect_timeout, |
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
1514 prev->upstream.connect_timeout, 60000); |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
1515 |
3543
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
1516 ngx_conf_merge_msec_value(conf->upstream.send_timeout, |
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
1517 prev->upstream.send_timeout, 60000); |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
1518 |
3543
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
1519 ngx_conf_merge_msec_value(conf->upstream.read_timeout, |
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
1520 prev->upstream.read_timeout, 60000); |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
1521 |
5832
d09b689911ac
Upstream: limited next_upstream time and tries (ticket #544).
Roman Arutyunyan <arut@nginx.com>
parents:
5829
diff
changeset
|
1522 ngx_conf_merge_msec_value(conf->upstream.next_upstream_timeout, |
d09b689911ac
Upstream: limited next_upstream time and tries (ticket #544).
Roman Arutyunyan <arut@nginx.com>
parents:
5829
diff
changeset
|
1523 prev->upstream.next_upstream_timeout, 0); |
d09b689911ac
Upstream: limited next_upstream time and tries (ticket #544).
Roman Arutyunyan <arut@nginx.com>
parents:
5829
diff
changeset
|
1524 |
3543
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
1525 ngx_conf_merge_size_value(conf->upstream.send_lowat, |
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
1526 prev->upstream.send_lowat, 0); |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
1527 |
3543
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
1528 ngx_conf_merge_size_value(conf->upstream.buffer_size, |
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
1529 prev->upstream.buffer_size, |
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
1530 (size_t) ngx_pagesize); |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
1531 |
5883
973ee2276300
Upstream: proxy_limit_rate and friends.
Roman Arutyunyan <arut@nginx.com>
parents:
5874
diff
changeset
|
1532 ngx_conf_merge_size_value(conf->upstream.limit_rate, |
973ee2276300
Upstream: proxy_limit_rate and friends.
Roman Arutyunyan <arut@nginx.com>
parents:
5874
diff
changeset
|
1533 prev->upstream.limit_rate, 0); |
973ee2276300
Upstream: proxy_limit_rate and friends.
Roman Arutyunyan <arut@nginx.com>
parents:
5874
diff
changeset
|
1534 |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
1535 |
3543
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
1536 ngx_conf_merge_bufs_value(conf->upstream.bufs, prev->upstream.bufs, |
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
1537 8, ngx_pagesize); |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
1538 |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
1539 if (conf->upstream.bufs.num < 2) { |
3543
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
1540 ngx_conf_log_error(NGX_LOG_EMERG, cf, 0, |
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
1541 "there must be at least 2 \"uwsgi_buffers\""); |
3542
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
1542 return NGX_CONF_ERROR; |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
1543 } |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
1544 |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
1545 |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
1546 size = conf->upstream.buffer_size; |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
1547 if (size < conf->upstream.bufs.size) { |
3542
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
1548 size = conf->upstream.bufs.size; |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
1549 } |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
1550 |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
1551 |
3543
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
1552 ngx_conf_merge_size_value(conf->upstream.busy_buffers_size_conf, |
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
1553 prev->upstream.busy_buffers_size_conf, |
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
1554 NGX_CONF_UNSET_SIZE); |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
1555 |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
1556 if (conf->upstream.busy_buffers_size_conf == NGX_CONF_UNSET_SIZE) { |
3542
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
1557 conf->upstream.busy_buffers_size = 2 * size; |
3543
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
1558 } else { |
3542
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
1559 conf->upstream.busy_buffers_size = |
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
1560 conf->upstream.busy_buffers_size_conf; |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
1561 } |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
1562 |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
1563 if (conf->upstream.busy_buffers_size < size) { |
3543
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
1564 ngx_conf_log_error(NGX_LOG_EMERG, cf, 0, |
4593
834049edae24
Fixed grammar in error messages.
Ruslan Ermilov <ru@nginx.com>
parents:
4529
diff
changeset
|
1565 "\"uwsgi_busy_buffers_size\" must be equal to or greater " |
834049edae24
Fixed grammar in error messages.
Ruslan Ermilov <ru@nginx.com>
parents:
4529
diff
changeset
|
1566 "than the maximum of the value of \"uwsgi_buffer_size\" and " |
3543
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
1567 "one of the \"uwsgi_buffers\""); |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
1568 |
3542
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
1569 return NGX_CONF_ERROR; |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
1570 } |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
1571 |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
1572 if (conf->upstream.busy_buffers_size |
3543
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
1573 > (conf->upstream.bufs.num - 1) * conf->upstream.bufs.size) |
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
1574 { |
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
1575 ngx_conf_log_error(NGX_LOG_EMERG, cf, 0, |
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
1576 "\"uwsgi_busy_buffers_size\" must be less than " |
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
1577 "the size of all \"uwsgi_buffers\" minus one buffer"); |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
1578 |
3542
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
1579 return NGX_CONF_ERROR; |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
1580 } |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
1581 |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
1582 |
3543
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
1583 ngx_conf_merge_size_value(conf->upstream.temp_file_write_size_conf, |
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
1584 prev->upstream.temp_file_write_size_conf, |
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
1585 NGX_CONF_UNSET_SIZE); |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
1586 |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
1587 if (conf->upstream.temp_file_write_size_conf == NGX_CONF_UNSET_SIZE) { |
3542
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
1588 conf->upstream.temp_file_write_size = 2 * size; |
3543
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
1589 } else { |
3542
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
1590 conf->upstream.temp_file_write_size = |
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
1591 conf->upstream.temp_file_write_size_conf; |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
1592 } |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
1593 |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
1594 if (conf->upstream.temp_file_write_size < size) { |
3543
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
1595 ngx_conf_log_error(NGX_LOG_EMERG, cf, 0, |
4593
834049edae24
Fixed grammar in error messages.
Ruslan Ermilov <ru@nginx.com>
parents:
4529
diff
changeset
|
1596 "\"uwsgi_temp_file_write_size\" must be equal to or greater than " |
834049edae24
Fixed grammar in error messages.
Ruslan Ermilov <ru@nginx.com>
parents:
4529
diff
changeset
|
1597 "the maximum of the value of \"uwsgi_buffer_size\" and " |
3543
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
1598 "one of the \"uwsgi_buffers\""); |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
1599 |
3542
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
1600 return NGX_CONF_ERROR; |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
1601 } |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
1602 |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
1603 |
3543
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
1604 ngx_conf_merge_size_value(conf->upstream.max_temp_file_size_conf, |
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
1605 prev->upstream.max_temp_file_size_conf, |
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
1606 NGX_CONF_UNSET_SIZE); |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
1607 |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
1608 if (conf->upstream.max_temp_file_size_conf == NGX_CONF_UNSET_SIZE) { |
3542
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
1609 conf->upstream.max_temp_file_size = 1024 * 1024 * 1024; |
3543
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
1610 } else { |
3542
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
1611 conf->upstream.max_temp_file_size = |
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
1612 conf->upstream.max_temp_file_size_conf; |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
1613 } |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
1614 |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
1615 if (conf->upstream.max_temp_file_size != 0 |
5828 | 1616 && conf->upstream.max_temp_file_size < size) |
1617 { | |
3543
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
1618 ngx_conf_log_error(NGX_LOG_EMERG, cf, 0, |
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
1619 "\"uwsgi_max_temp_file_size\" must be equal to zero to disable " |
4593
834049edae24
Fixed grammar in error messages.
Ruslan Ermilov <ru@nginx.com>
parents:
4529
diff
changeset
|
1620 "temporary files usage or must be equal to or greater than " |
834049edae24
Fixed grammar in error messages.
Ruslan Ermilov <ru@nginx.com>
parents:
4529
diff
changeset
|
1621 "the maximum of the value of \"uwsgi_buffer_size\" and " |
3543
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
1622 "one of the \"uwsgi_buffers\""); |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
1623 |
3542
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
1624 return NGX_CONF_ERROR; |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
1625 } |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
1626 |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
1627 |
3543
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
1628 ngx_conf_merge_bitmask_value(conf->upstream.ignore_headers, |
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
1629 prev->upstream.ignore_headers, |
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
1630 NGX_CONF_BITMASK_SET); |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
1631 |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
1632 |
3543
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
1633 ngx_conf_merge_bitmask_value(conf->upstream.next_upstream, |
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
1634 prev->upstream.next_upstream, |
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
1635 (NGX_CONF_BITMASK_SET |
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
1636 |NGX_HTTP_UPSTREAM_FT_ERROR |
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
1637 |NGX_HTTP_UPSTREAM_FT_TIMEOUT)); |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
1638 |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
1639 if (conf->upstream.next_upstream & NGX_HTTP_UPSTREAM_FT_OFF) { |
3542
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
1640 conf->upstream.next_upstream = NGX_CONF_BITMASK_SET |
3543
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
1641 |NGX_HTTP_UPSTREAM_FT_OFF; |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
1642 } |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
1643 |
3543
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
1644 if (ngx_conf_merge_path_value(cf, &conf->upstream.temp_path, |
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
1645 prev->upstream.temp_path, |
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
1646 &ngx_http_uwsgi_temp_path) |
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
1647 != NGX_OK) |
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
1648 { |
3542
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
1649 return NGX_CONF_ERROR; |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
1650 } |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
1651 |
3568 | 1652 #if (NGX_HTTP_CACHE) |
1653 | |
5949
634da79665d3
Upstream: refactored proxy_cache and friends.
Valentin Bartenev <vbart@nginx.com>
parents:
5948
diff
changeset
|
1654 if (conf->upstream.cache == NGX_CONF_UNSET) { |
634da79665d3
Upstream: refactored proxy_cache and friends.
Valentin Bartenev <vbart@nginx.com>
parents:
5948
diff
changeset
|
1655 ngx_conf_merge_value(conf->upstream.cache, |
634da79665d3
Upstream: refactored proxy_cache and friends.
Valentin Bartenev <vbart@nginx.com>
parents:
5948
diff
changeset
|
1656 prev->upstream.cache, 0); |
634da79665d3
Upstream: refactored proxy_cache and friends.
Valentin Bartenev <vbart@nginx.com>
parents:
5948
diff
changeset
|
1657 |
634da79665d3
Upstream: refactored proxy_cache and friends.
Valentin Bartenev <vbart@nginx.com>
parents:
5948
diff
changeset
|
1658 conf->upstream.cache_zone = prev->upstream.cache_zone; |
5951
610832763648
Upstream: added variables support to proxy_cache and friends.
Valentin Bartenev <vbart@nginx.com>
parents:
5949
diff
changeset
|
1659 conf->upstream.cache_value = prev->upstream.cache_value; |
5949
634da79665d3
Upstream: refactored proxy_cache and friends.
Valentin Bartenev <vbart@nginx.com>
parents:
5948
diff
changeset
|
1660 } |
634da79665d3
Upstream: refactored proxy_cache and friends.
Valentin Bartenev <vbart@nginx.com>
parents:
5948
diff
changeset
|
1661 |
634da79665d3
Upstream: refactored proxy_cache and friends.
Valentin Bartenev <vbart@nginx.com>
parents:
5948
diff
changeset
|
1662 if (conf->upstream.cache_zone && conf->upstream.cache_zone->data == NULL) { |
3568 | 1663 ngx_shm_zone_t *shm_zone; |
1664 | |
5949
634da79665d3
Upstream: refactored proxy_cache and friends.
Valentin Bartenev <vbart@nginx.com>
parents:
5948
diff
changeset
|
1665 shm_zone = conf->upstream.cache_zone; |
3568 | 1666 |
1667 ngx_conf_log_error(NGX_LOG_EMERG, cf, 0, | |
1668 "\"uwsgi_cache\" zone \"%V\" is unknown", | |
1669 &shm_zone->shm.name); | |
1670 | |
1671 return NGX_CONF_ERROR; | |
1672 } | |
1673 | |
1674 ngx_conf_merge_uint_value(conf->upstream.cache_min_uses, | |
1675 prev->upstream.cache_min_uses, 1); | |
1676 | |
6793
0fba3ed4e7eb
Cache: proxy_cache_max_range_offset and friends.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
6785
diff
changeset
|
1677 ngx_conf_merge_off_value(conf->upstream.cache_max_range_offset, |
0fba3ed4e7eb
Cache: proxy_cache_max_range_offset and friends.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
6785
diff
changeset
|
1678 prev->upstream.cache_max_range_offset, |
0fba3ed4e7eb
Cache: proxy_cache_max_range_offset and friends.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
6785
diff
changeset
|
1679 NGX_MAX_OFF_T_VALUE); |
0fba3ed4e7eb
Cache: proxy_cache_max_range_offset and friends.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
6785
diff
changeset
|
1680 |
3568 | 1681 ngx_conf_merge_bitmask_value(conf->upstream.cache_use_stale, |
1682 prev->upstream.cache_use_stale, | |
1683 (NGX_CONF_BITMASK_SET | |
1684 |NGX_HTTP_UPSTREAM_FT_OFF)); | |
1685 | |
1686 if (conf->upstream.cache_use_stale & NGX_HTTP_UPSTREAM_FT_OFF) { | |
1687 conf->upstream.cache_use_stale = NGX_CONF_BITMASK_SET | |
1688 |NGX_HTTP_UPSTREAM_FT_OFF; | |
1689 } | |
1690 | |
4401
d45742815c90
Fixed proxy_cache_use_stale in "no live upstreams" case.
Maxim Dounin <mdounin@mdounin.ru>
parents:
4386
diff
changeset
|
1691 if (conf->upstream.cache_use_stale & NGX_HTTP_UPSTREAM_FT_ERROR) { |
d45742815c90
Fixed proxy_cache_use_stale in "no live upstreams" case.
Maxim Dounin <mdounin@mdounin.ru>
parents:
4386
diff
changeset
|
1692 conf->upstream.cache_use_stale |= NGX_HTTP_UPSTREAM_FT_NOLIVE; |
d45742815c90
Fixed proxy_cache_use_stale in "no live upstreams" case.
Maxim Dounin <mdounin@mdounin.ru>
parents:
4386
diff
changeset
|
1693 } |
d45742815c90
Fixed proxy_cache_use_stale in "no live upstreams" case.
Maxim Dounin <mdounin@mdounin.ru>
parents:
4386
diff
changeset
|
1694 |
3568 | 1695 if (conf->upstream.cache_methods == 0) { |
1696 conf->upstream.cache_methods = prev->upstream.cache_methods; | |
1697 } | |
1698 | |
1699 conf->upstream.cache_methods |= NGX_HTTP_GET|NGX_HTTP_HEAD; | |
1700 | |
3699
b0a0686a85bb
proxy_cache_pass, fastcgi_cache_bypass, uwsgi_cache_bypass, scgi_cache_bypass
Igor Sysoev <igor@sysoev.ru>
parents:
3693
diff
changeset
|
1701 ngx_conf_merge_ptr_value(conf->upstream.cache_bypass, |
b0a0686a85bb
proxy_cache_pass, fastcgi_cache_bypass, uwsgi_cache_bypass, scgi_cache_bypass
Igor Sysoev <igor@sysoev.ru>
parents:
3693
diff
changeset
|
1702 prev->upstream.cache_bypass, NULL); |
b0a0686a85bb
proxy_cache_pass, fastcgi_cache_bypass, uwsgi_cache_bypass, scgi_cache_bypass
Igor Sysoev <igor@sysoev.ru>
parents:
3693
diff
changeset
|
1703 |
3568 | 1704 ngx_conf_merge_ptr_value(conf->upstream.no_cache, |
1705 prev->upstream.no_cache, NULL); | |
1706 | |
1707 ngx_conf_merge_ptr_value(conf->upstream.cache_valid, | |
1708 prev->upstream.cache_valid, NULL); | |
1709 | |
1710 if (conf->cache_key.value.data == NULL) { | |
1711 conf->cache_key = prev->cache_key; | |
1712 } | |
1713 | |
5829
906530c9ffd2
Added warning about unset cache keys.
Maxim Dounin <mdounin@mdounin.ru>
parents:
5828
diff
changeset
|
1714 if (conf->upstream.cache && conf->cache_key.value.data == NULL) { |
906530c9ffd2
Added warning about unset cache keys.
Maxim Dounin <mdounin@mdounin.ru>
parents:
5828
diff
changeset
|
1715 ngx_conf_log_error(NGX_LOG_WARN, cf, 0, |
906530c9ffd2
Added warning about unset cache keys.
Maxim Dounin <mdounin@mdounin.ru>
parents:
5828
diff
changeset
|
1716 "no \"uwsgi_cache_key\" for \"uwsgi_cache\""); |
906530c9ffd2
Added warning about unset cache keys.
Maxim Dounin <mdounin@mdounin.ru>
parents:
5828
diff
changeset
|
1717 } |
906530c9ffd2
Added warning about unset cache keys.
Maxim Dounin <mdounin@mdounin.ru>
parents:
5828
diff
changeset
|
1718 |
4386
92deb73393f7
Cache lock support for fastcgi, scgi, uwsgi.
Maxim Dounin <mdounin@mdounin.ru>
parents:
4330
diff
changeset
|
1719 ngx_conf_merge_value(conf->upstream.cache_lock, |
92deb73393f7
Cache lock support for fastcgi, scgi, uwsgi.
Maxim Dounin <mdounin@mdounin.ru>
parents:
4330
diff
changeset
|
1720 prev->upstream.cache_lock, 0); |
92deb73393f7
Cache lock support for fastcgi, scgi, uwsgi.
Maxim Dounin <mdounin@mdounin.ru>
parents:
4330
diff
changeset
|
1721 |
92deb73393f7
Cache lock support for fastcgi, scgi, uwsgi.
Maxim Dounin <mdounin@mdounin.ru>
parents:
4330
diff
changeset
|
1722 ngx_conf_merge_msec_value(conf->upstream.cache_lock_timeout, |
92deb73393f7
Cache lock support for fastcgi, scgi, uwsgi.
Maxim Dounin <mdounin@mdounin.ru>
parents:
4330
diff
changeset
|
1723 prev->upstream.cache_lock_timeout, 5000); |
92deb73393f7
Cache lock support for fastcgi, scgi, uwsgi.
Maxim Dounin <mdounin@mdounin.ru>
parents:
4330
diff
changeset
|
1724 |
5905
2f7e557eab5b
Cache: proxy_cache_lock_age and friends.
Roman Arutyunyan <arut@nginx.com>
parents:
5900
diff
changeset
|
1725 ngx_conf_merge_msec_value(conf->upstream.cache_lock_age, |
2f7e557eab5b
Cache: proxy_cache_lock_age and friends.
Roman Arutyunyan <arut@nginx.com>
parents:
5900
diff
changeset
|
1726 prev->upstream.cache_lock_age, 5000); |
2f7e557eab5b
Cache: proxy_cache_lock_age and friends.
Roman Arutyunyan <arut@nginx.com>
parents:
5900
diff
changeset
|
1727 |
5441
43ccaf8e8728
Upstream: cache revalidation with conditional requests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
5393
diff
changeset
|
1728 ngx_conf_merge_value(conf->upstream.cache_revalidate, |
43ccaf8e8728
Upstream: cache revalidation with conditional requests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
5393
diff
changeset
|
1729 prev->upstream.cache_revalidate, 0); |
43ccaf8e8728
Upstream: cache revalidation with conditional requests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
5393
diff
changeset
|
1730 |
6906
1aeaae6e9446
Upstream: proxy_cache_background_update and friends.
Roman Arutyunyan <arut@nginx.com>
parents:
6793
diff
changeset
|
1731 ngx_conf_merge_value(conf->upstream.cache_background_update, |
1aeaae6e9446
Upstream: proxy_cache_background_update and friends.
Roman Arutyunyan <arut@nginx.com>
parents:
6793
diff
changeset
|
1732 prev->upstream.cache_background_update, 0); |
1aeaae6e9446
Upstream: proxy_cache_background_update and friends.
Roman Arutyunyan <arut@nginx.com>
parents:
6793
diff
changeset
|
1733 |
3568 | 1734 #endif |
1735 | |
3543
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
1736 ngx_conf_merge_value(conf->upstream.pass_request_headers, |
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
1737 prev->upstream.pass_request_headers, 1); |
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
1738 ngx_conf_merge_value(conf->upstream.pass_request_body, |
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
1739 prev->upstream.pass_request_body, 1); |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
1740 |
3543
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
1741 ngx_conf_merge_value(conf->upstream.intercept_errors, |
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
1742 prev->upstream.intercept_errors, 0); |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
1743 |
5457
c82b2e020b9f
SSL support in the uwsgi module.
Maxim Dounin <mdounin@mdounin.ru>
parents:
5451
diff
changeset
|
1744 #if (NGX_HTTP_SSL) |
5662
3cb79707516a
Upstream: uwsgi_ssl_name, uwsgi_ssl_verify, and so on.
Maxim Dounin <mdounin@mdounin.ru>
parents:
5659
diff
changeset
|
1745 |
5457
c82b2e020b9f
SSL support in the uwsgi module.
Maxim Dounin <mdounin@mdounin.ru>
parents:
5451
diff
changeset
|
1746 ngx_conf_merge_value(conf->upstream.ssl_session_reuse, |
c82b2e020b9f
SSL support in the uwsgi module.
Maxim Dounin <mdounin@mdounin.ru>
parents:
5451
diff
changeset
|
1747 prev->upstream.ssl_session_reuse, 1); |
c82b2e020b9f
SSL support in the uwsgi module.
Maxim Dounin <mdounin@mdounin.ru>
parents:
5451
diff
changeset
|
1748 |
c82b2e020b9f
SSL support in the uwsgi module.
Maxim Dounin <mdounin@mdounin.ru>
parents:
5451
diff
changeset
|
1749 ngx_conf_merge_bitmask_value(conf->ssl_protocols, prev->ssl_protocols, |
6157
b2899e7d0ef8
Disabled SSLv3 by default (ticket #653).
Maxim Dounin <mdounin@mdounin.ru>
parents:
6053
diff
changeset
|
1750 (NGX_CONF_BITMASK_SET|NGX_SSL_TLSv1 |
b2899e7d0ef8
Disabled SSLv3 by default (ticket #653).
Maxim Dounin <mdounin@mdounin.ru>
parents:
6053
diff
changeset
|
1751 |NGX_SSL_TLSv1_1|NGX_SSL_TLSv1_2)); |
5457
c82b2e020b9f
SSL support in the uwsgi module.
Maxim Dounin <mdounin@mdounin.ru>
parents:
5451
diff
changeset
|
1752 |
c82b2e020b9f
SSL support in the uwsgi module.
Maxim Dounin <mdounin@mdounin.ru>
parents:
5451
diff
changeset
|
1753 ngx_conf_merge_str_value(conf->ssl_ciphers, prev->ssl_ciphers, |
c82b2e020b9f
SSL support in the uwsgi module.
Maxim Dounin <mdounin@mdounin.ru>
parents:
5451
diff
changeset
|
1754 "DEFAULT"); |
c82b2e020b9f
SSL support in the uwsgi module.
Maxim Dounin <mdounin@mdounin.ru>
parents:
5451
diff
changeset
|
1755 |
5662
3cb79707516a
Upstream: uwsgi_ssl_name, uwsgi_ssl_verify, and so on.
Maxim Dounin <mdounin@mdounin.ru>
parents:
5659
diff
changeset
|
1756 if (conf->upstream.ssl_name == NULL) { |
3cb79707516a
Upstream: uwsgi_ssl_name, uwsgi_ssl_verify, and so on.
Maxim Dounin <mdounin@mdounin.ru>
parents:
5659
diff
changeset
|
1757 conf->upstream.ssl_name = prev->upstream.ssl_name; |
3cb79707516a
Upstream: uwsgi_ssl_name, uwsgi_ssl_verify, and so on.
Maxim Dounin <mdounin@mdounin.ru>
parents:
5659
diff
changeset
|
1758 } |
3cb79707516a
Upstream: uwsgi_ssl_name, uwsgi_ssl_verify, and so on.
Maxim Dounin <mdounin@mdounin.ru>
parents:
5659
diff
changeset
|
1759 |
3cb79707516a
Upstream: uwsgi_ssl_name, uwsgi_ssl_verify, and so on.
Maxim Dounin <mdounin@mdounin.ru>
parents:
5659
diff
changeset
|
1760 ngx_conf_merge_value(conf->upstream.ssl_server_name, |
3cb79707516a
Upstream: uwsgi_ssl_name, uwsgi_ssl_verify, and so on.
Maxim Dounin <mdounin@mdounin.ru>
parents:
5659
diff
changeset
|
1761 prev->upstream.ssl_server_name, 0); |
3cb79707516a
Upstream: uwsgi_ssl_name, uwsgi_ssl_verify, and so on.
Maxim Dounin <mdounin@mdounin.ru>
parents:
5659
diff
changeset
|
1762 ngx_conf_merge_value(conf->upstream.ssl_verify, |
3cb79707516a
Upstream: uwsgi_ssl_name, uwsgi_ssl_verify, and so on.
Maxim Dounin <mdounin@mdounin.ru>
parents:
5659
diff
changeset
|
1763 prev->upstream.ssl_verify, 0); |
3cb79707516a
Upstream: uwsgi_ssl_name, uwsgi_ssl_verify, and so on.
Maxim Dounin <mdounin@mdounin.ru>
parents:
5659
diff
changeset
|
1764 ngx_conf_merge_uint_value(conf->ssl_verify_depth, |
3cb79707516a
Upstream: uwsgi_ssl_name, uwsgi_ssl_verify, and so on.
Maxim Dounin <mdounin@mdounin.ru>
parents:
5659
diff
changeset
|
1765 prev->ssl_verify_depth, 1); |
3cb79707516a
Upstream: uwsgi_ssl_name, uwsgi_ssl_verify, and so on.
Maxim Dounin <mdounin@mdounin.ru>
parents:
5659
diff
changeset
|
1766 ngx_conf_merge_str_value(conf->ssl_trusted_certificate, |
3cb79707516a
Upstream: uwsgi_ssl_name, uwsgi_ssl_verify, and so on.
Maxim Dounin <mdounin@mdounin.ru>
parents:
5659
diff
changeset
|
1767 prev->ssl_trusted_certificate, ""); |
3cb79707516a
Upstream: uwsgi_ssl_name, uwsgi_ssl_verify, and so on.
Maxim Dounin <mdounin@mdounin.ru>
parents:
5659
diff
changeset
|
1768 ngx_conf_merge_str_value(conf->ssl_crl, prev->ssl_crl, ""); |
3cb79707516a
Upstream: uwsgi_ssl_name, uwsgi_ssl_verify, and so on.
Maxim Dounin <mdounin@mdounin.ru>
parents:
5659
diff
changeset
|
1769 |
5900
20d966ad5e89
Upstream: add "proxy_ssl_certificate" and friends.
Piotr Sikora <piotr@cloudflare.com>
parents:
5883
diff
changeset
|
1770 ngx_conf_merge_str_value(conf->ssl_certificate, |
20d966ad5e89
Upstream: add "proxy_ssl_certificate" and friends.
Piotr Sikora <piotr@cloudflare.com>
parents:
5883
diff
changeset
|
1771 prev->ssl_certificate, ""); |
20d966ad5e89
Upstream: add "proxy_ssl_certificate" and friends.
Piotr Sikora <piotr@cloudflare.com>
parents:
5883
diff
changeset
|
1772 ngx_conf_merge_str_value(conf->ssl_certificate_key, |
20d966ad5e89
Upstream: add "proxy_ssl_certificate" and friends.
Piotr Sikora <piotr@cloudflare.com>
parents:
5883
diff
changeset
|
1773 prev->ssl_certificate_key, ""); |
20d966ad5e89
Upstream: add "proxy_ssl_certificate" and friends.
Piotr Sikora <piotr@cloudflare.com>
parents:
5883
diff
changeset
|
1774 ngx_conf_merge_ptr_value(conf->ssl_passwords, prev->ssl_passwords, NULL); |
20d966ad5e89
Upstream: add "proxy_ssl_certificate" and friends.
Piotr Sikora <piotr@cloudflare.com>
parents:
5883
diff
changeset
|
1775 |
5457
c82b2e020b9f
SSL support in the uwsgi module.
Maxim Dounin <mdounin@mdounin.ru>
parents:
5451
diff
changeset
|
1776 if (conf->ssl && ngx_http_uwsgi_set_ssl(cf, conf) != NGX_OK) { |
c82b2e020b9f
SSL support in the uwsgi module.
Maxim Dounin <mdounin@mdounin.ru>
parents:
5451
diff
changeset
|
1777 return NGX_CONF_ERROR; |
c82b2e020b9f
SSL support in the uwsgi module.
Maxim Dounin <mdounin@mdounin.ru>
parents:
5451
diff
changeset
|
1778 } |
c82b2e020b9f
SSL support in the uwsgi module.
Maxim Dounin <mdounin@mdounin.ru>
parents:
5451
diff
changeset
|
1779 |
c82b2e020b9f
SSL support in the uwsgi module.
Maxim Dounin <mdounin@mdounin.ru>
parents:
5451
diff
changeset
|
1780 #endif |
c82b2e020b9f
SSL support in the uwsgi module.
Maxim Dounin <mdounin@mdounin.ru>
parents:
5451
diff
changeset
|
1781 |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
1782 ngx_conf_merge_str_value(conf->uwsgi_string, prev->uwsgi_string, ""); |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
1783 |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
1784 hash.max_size = 512; |
3543
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
1785 hash.bucket_size = ngx_align(64, ngx_cacheline_size); |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
1786 hash.name = "uwsgi_hide_headers_hash"; |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
1787 |
3543
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
1788 if (ngx_http_upstream_hide_headers_hash(cf, &conf->upstream, |
3670
2728c4e4a9ae
do not use a cache headers set to hide
Igor Sysoev <igor@sysoev.ru>
parents:
3667
diff
changeset
|
1789 &prev->upstream, ngx_http_uwsgi_hide_headers, &hash) |
3543
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
1790 != NGX_OK) |
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
1791 { |
3542
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
1792 return NGX_CONF_ERROR; |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
1793 } |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
1794 |
5938
cd2abf7e7740
Upstream: fixed unexpected inheritance into limit_except blocks.
Maxim Dounin <mdounin@mdounin.ru>
parents:
5937
diff
changeset
|
1795 clcf = ngx_http_conf_get_module_loc_conf(cf, ngx_http_core_module); |
cd2abf7e7740
Upstream: fixed unexpected inheritance into limit_except blocks.
Maxim Dounin <mdounin@mdounin.ru>
parents:
5937
diff
changeset
|
1796 |
cd2abf7e7740
Upstream: fixed unexpected inheritance into limit_except blocks.
Maxim Dounin <mdounin@mdounin.ru>
parents:
5937
diff
changeset
|
1797 if (clcf->noname |
cd2abf7e7740
Upstream: fixed unexpected inheritance into limit_except blocks.
Maxim Dounin <mdounin@mdounin.ru>
parents:
5937
diff
changeset
|
1798 && conf->upstream.upstream == NULL && conf->uwsgi_lengths == NULL) |
cd2abf7e7740
Upstream: fixed unexpected inheritance into limit_except blocks.
Maxim Dounin <mdounin@mdounin.ru>
parents:
5937
diff
changeset
|
1799 { |
3542
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
1800 conf->upstream.upstream = prev->upstream.upstream; |
5937
5b9f711dc819
Upstream: inheritance of proxy_pass and friends (ticket #645).
Maxim Dounin <mdounin@mdounin.ru>
parents:
5909
diff
changeset
|
1801 |
3542
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
1802 conf->uwsgi_lengths = prev->uwsgi_lengths; |
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
1803 conf->uwsgi_values = prev->uwsgi_values; |
5937
5b9f711dc819
Upstream: inheritance of proxy_pass and friends (ticket #645).
Maxim Dounin <mdounin@mdounin.ru>
parents:
5909
diff
changeset
|
1804 |
5b9f711dc819
Upstream: inheritance of proxy_pass and friends (ticket #645).
Maxim Dounin <mdounin@mdounin.ru>
parents:
5909
diff
changeset
|
1805 #if (NGX_HTTP_SSL) |
5b9f711dc819
Upstream: inheritance of proxy_pass and friends (ticket #645).
Maxim Dounin <mdounin@mdounin.ru>
parents:
5909
diff
changeset
|
1806 conf->upstream.ssl = prev->upstream.ssl; |
5b9f711dc819
Upstream: inheritance of proxy_pass and friends (ticket #645).
Maxim Dounin <mdounin@mdounin.ru>
parents:
5909
diff
changeset
|
1807 #endif |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
1808 } |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
1809 |
5938
cd2abf7e7740
Upstream: fixed unexpected inheritance into limit_except blocks.
Maxim Dounin <mdounin@mdounin.ru>
parents:
5937
diff
changeset
|
1810 if (clcf->lmt_excpt && clcf->handler == NULL |
cd2abf7e7740
Upstream: fixed unexpected inheritance into limit_except blocks.
Maxim Dounin <mdounin@mdounin.ru>
parents:
5937
diff
changeset
|
1811 && (conf->upstream.upstream || conf->uwsgi_lengths)) |
cd2abf7e7740
Upstream: fixed unexpected inheritance into limit_except blocks.
Maxim Dounin <mdounin@mdounin.ru>
parents:
5937
diff
changeset
|
1812 { |
cd2abf7e7740
Upstream: fixed unexpected inheritance into limit_except blocks.
Maxim Dounin <mdounin@mdounin.ru>
parents:
5937
diff
changeset
|
1813 clcf->handler = ngx_http_uwsgi_handler; |
3731
72cc5b789021
inherit proxy_pass, fastcgi_pass, uwsgi_pass, scgi_pass inside
Igor Sysoev <igor@sysoev.ru>
parents:
3729
diff
changeset
|
1814 } |
72cc5b789021
inherit proxy_pass, fastcgi_pass, uwsgi_pass, scgi_pass inside
Igor Sysoev <igor@sysoev.ru>
parents:
3729
diff
changeset
|
1815 |
3552
40eba0271b1d
improve uwsgi_modifierX processing:
Igor Sysoev <igor@sysoev.ru>
parents:
3551
diff
changeset
|
1816 ngx_conf_merge_uint_value(conf->modifier1, prev->modifier1, 0); |
40eba0271b1d
improve uwsgi_modifierX processing:
Igor Sysoev <igor@sysoev.ru>
parents:
3551
diff
changeset
|
1817 ngx_conf_merge_uint_value(conf->modifier2, prev->modifier2, 0); |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
1818 |
5907
195561ef367f
Upstream: moved header initializations to separate functions.
Roman Arutyunyan <arut@nginx.com>
parents:
5905
diff
changeset
|
1819 if (conf->params_source == NULL) { |
5909
8d0cf26ce071
Upstream: different header lists for cached and uncached requests.
Roman Arutyunyan <arut@nginx.com>
parents:
5908
diff
changeset
|
1820 conf->params = prev->params; |
8d0cf26ce071
Upstream: different header lists for cached and uncached requests.
Roman Arutyunyan <arut@nginx.com>
parents:
5908
diff
changeset
|
1821 #if (NGX_HTTP_CACHE) |
8d0cf26ce071
Upstream: different header lists for cached and uncached requests.
Roman Arutyunyan <arut@nginx.com>
parents:
5908
diff
changeset
|
1822 conf->params_cache = prev->params_cache; |
8d0cf26ce071
Upstream: different header lists for cached and uncached requests.
Roman Arutyunyan <arut@nginx.com>
parents:
5908
diff
changeset
|
1823 #endif |
5907
195561ef367f
Upstream: moved header initializations to separate functions.
Roman Arutyunyan <arut@nginx.com>
parents:
5905
diff
changeset
|
1824 conf->params_source = prev->params_source; |
5909
8d0cf26ce071
Upstream: different header lists for cached and uncached requests.
Roman Arutyunyan <arut@nginx.com>
parents:
5908
diff
changeset
|
1825 } |
8d0cf26ce071
Upstream: different header lists for cached and uncached requests.
Roman Arutyunyan <arut@nginx.com>
parents:
5908
diff
changeset
|
1826 |
8d0cf26ce071
Upstream: different header lists for cached and uncached requests.
Roman Arutyunyan <arut@nginx.com>
parents:
5908
diff
changeset
|
1827 rc = ngx_http_uwsgi_init_params(cf, conf, &conf->params, NULL); |
8d0cf26ce071
Upstream: different header lists for cached and uncached requests.
Roman Arutyunyan <arut@nginx.com>
parents:
5908
diff
changeset
|
1828 if (rc != NGX_OK) { |
8d0cf26ce071
Upstream: different header lists for cached and uncached requests.
Roman Arutyunyan <arut@nginx.com>
parents:
5908
diff
changeset
|
1829 return NGX_CONF_ERROR; |
8d0cf26ce071
Upstream: different header lists for cached and uncached requests.
Roman Arutyunyan <arut@nginx.com>
parents:
5908
diff
changeset
|
1830 } |
5907
195561ef367f
Upstream: moved header initializations to separate functions.
Roman Arutyunyan <arut@nginx.com>
parents:
5905
diff
changeset
|
1831 |
195561ef367f
Upstream: moved header initializations to separate functions.
Roman Arutyunyan <arut@nginx.com>
parents:
5905
diff
changeset
|
1832 #if (NGX_HTTP_CACHE) |
5909
8d0cf26ce071
Upstream: different header lists for cached and uncached requests.
Roman Arutyunyan <arut@nginx.com>
parents:
5908
diff
changeset
|
1833 |
8d0cf26ce071
Upstream: different header lists for cached and uncached requests.
Roman Arutyunyan <arut@nginx.com>
parents:
5908
diff
changeset
|
1834 if (conf->upstream.cache) { |
8d0cf26ce071
Upstream: different header lists for cached and uncached requests.
Roman Arutyunyan <arut@nginx.com>
parents:
5908
diff
changeset
|
1835 rc = ngx_http_uwsgi_init_params(cf, conf, &conf->params_cache, |
8d0cf26ce071
Upstream: different header lists for cached and uncached requests.
Roman Arutyunyan <arut@nginx.com>
parents:
5908
diff
changeset
|
1836 ngx_http_uwsgi_cache_headers); |
8d0cf26ce071
Upstream: different header lists for cached and uncached requests.
Roman Arutyunyan <arut@nginx.com>
parents:
5908
diff
changeset
|
1837 if (rc != NGX_OK) { |
8d0cf26ce071
Upstream: different header lists for cached and uncached requests.
Roman Arutyunyan <arut@nginx.com>
parents:
5908
diff
changeset
|
1838 return NGX_CONF_ERROR; |
5907
195561ef367f
Upstream: moved header initializations to separate functions.
Roman Arutyunyan <arut@nginx.com>
parents:
5905
diff
changeset
|
1839 } |
195561ef367f
Upstream: moved header initializations to separate functions.
Roman Arutyunyan <arut@nginx.com>
parents:
5905
diff
changeset
|
1840 } |
195561ef367f
Upstream: moved header initializations to separate functions.
Roman Arutyunyan <arut@nginx.com>
parents:
5905
diff
changeset
|
1841 |
5909
8d0cf26ce071
Upstream: different header lists for cached and uncached requests.
Roman Arutyunyan <arut@nginx.com>
parents:
5908
diff
changeset
|
1842 #endif |
4277
e4b8255e44c3
Separate functions to merge fastcgi/scgi/uwsgi params.
Maxim Dounin <mdounin@mdounin.ru>
parents:
4157
diff
changeset
|
1843 |
6747
20eb4587225b
Upstream: handling of proxy_set_header at http level.
Maxim Dounin <mdounin@mdounin.ru>
parents:
6591
diff
changeset
|
1844 /* |
20eb4587225b
Upstream: handling of proxy_set_header at http level.
Maxim Dounin <mdounin@mdounin.ru>
parents:
6591
diff
changeset
|
1845 * special handling to preserve conf->params in the "http" section |
20eb4587225b
Upstream: handling of proxy_set_header at http level.
Maxim Dounin <mdounin@mdounin.ru>
parents:
6591
diff
changeset
|
1846 * to inherit it to all servers |
20eb4587225b
Upstream: handling of proxy_set_header at http level.
Maxim Dounin <mdounin@mdounin.ru>
parents:
6591
diff
changeset
|
1847 */ |
20eb4587225b
Upstream: handling of proxy_set_header at http level.
Maxim Dounin <mdounin@mdounin.ru>
parents:
6591
diff
changeset
|
1848 |
20eb4587225b
Upstream: handling of proxy_set_header at http level.
Maxim Dounin <mdounin@mdounin.ru>
parents:
6591
diff
changeset
|
1849 if (prev->params.hash.buckets == NULL |
20eb4587225b
Upstream: handling of proxy_set_header at http level.
Maxim Dounin <mdounin@mdounin.ru>
parents:
6591
diff
changeset
|
1850 && conf->params_source == prev->params_source) |
20eb4587225b
Upstream: handling of proxy_set_header at http level.
Maxim Dounin <mdounin@mdounin.ru>
parents:
6591
diff
changeset
|
1851 { |
20eb4587225b
Upstream: handling of proxy_set_header at http level.
Maxim Dounin <mdounin@mdounin.ru>
parents:
6591
diff
changeset
|
1852 prev->params = conf->params; |
20eb4587225b
Upstream: handling of proxy_set_header at http level.
Maxim Dounin <mdounin@mdounin.ru>
parents:
6591
diff
changeset
|
1853 #if (NGX_HTTP_CACHE) |
20eb4587225b
Upstream: handling of proxy_set_header at http level.
Maxim Dounin <mdounin@mdounin.ru>
parents:
6591
diff
changeset
|
1854 prev->params_cache = conf->params_cache; |
20eb4587225b
Upstream: handling of proxy_set_header at http level.
Maxim Dounin <mdounin@mdounin.ru>
parents:
6591
diff
changeset
|
1855 #endif |
20eb4587225b
Upstream: handling of proxy_set_header at http level.
Maxim Dounin <mdounin@mdounin.ru>
parents:
6591
diff
changeset
|
1856 } |
20eb4587225b
Upstream: handling of proxy_set_header at http level.
Maxim Dounin <mdounin@mdounin.ru>
parents:
6591
diff
changeset
|
1857 |
4277
e4b8255e44c3
Separate functions to merge fastcgi/scgi/uwsgi params.
Maxim Dounin <mdounin@mdounin.ru>
parents:
4157
diff
changeset
|
1858 return NGX_CONF_OK; |
e4b8255e44c3
Separate functions to merge fastcgi/scgi/uwsgi params.
Maxim Dounin <mdounin@mdounin.ru>
parents:
4157
diff
changeset
|
1859 } |
e4b8255e44c3
Separate functions to merge fastcgi/scgi/uwsgi params.
Maxim Dounin <mdounin@mdounin.ru>
parents:
4157
diff
changeset
|
1860 |
e4b8255e44c3
Separate functions to merge fastcgi/scgi/uwsgi params.
Maxim Dounin <mdounin@mdounin.ru>
parents:
4157
diff
changeset
|
1861 |
e4b8255e44c3
Separate functions to merge fastcgi/scgi/uwsgi params.
Maxim Dounin <mdounin@mdounin.ru>
parents:
4157
diff
changeset
|
1862 static ngx_int_t |
5908
f8e80f8c7fc7
Upstream: moved header lists to separate structures.
Roman Arutyunyan <arut@nginx.com>
parents:
5907
diff
changeset
|
1863 ngx_http_uwsgi_init_params(ngx_conf_t *cf, ngx_http_uwsgi_loc_conf_t *conf, |
5909
8d0cf26ce071
Upstream: different header lists for cached and uncached requests.
Roman Arutyunyan <arut@nginx.com>
parents:
5908
diff
changeset
|
1864 ngx_http_uwsgi_params_t *params, ngx_keyval_t *default_params) |
4277
e4b8255e44c3
Separate functions to merge fastcgi/scgi/uwsgi params.
Maxim Dounin <mdounin@mdounin.ru>
parents:
4157
diff
changeset
|
1865 { |
e4b8255e44c3
Separate functions to merge fastcgi/scgi/uwsgi params.
Maxim Dounin <mdounin@mdounin.ru>
parents:
4157
diff
changeset
|
1866 u_char *p; |
e4b8255e44c3
Separate functions to merge fastcgi/scgi/uwsgi params.
Maxim Dounin <mdounin@mdounin.ru>
parents:
4157
diff
changeset
|
1867 size_t size; |
e4b8255e44c3
Separate functions to merge fastcgi/scgi/uwsgi params.
Maxim Dounin <mdounin@mdounin.ru>
parents:
4157
diff
changeset
|
1868 uintptr_t *code; |
4278
f57229cba7ad
Fixed fastcgi/scgi/uwsgi_param inheritance.
Maxim Dounin <mdounin@mdounin.ru>
parents:
4277
diff
changeset
|
1869 ngx_uint_t i, nsrc; |
5909
8d0cf26ce071
Upstream: different header lists for cached and uncached requests.
Roman Arutyunyan <arut@nginx.com>
parents:
5908
diff
changeset
|
1870 ngx_array_t headers_names, params_merged; |
8d0cf26ce071
Upstream: different header lists for cached and uncached requests.
Roman Arutyunyan <arut@nginx.com>
parents:
5908
diff
changeset
|
1871 ngx_keyval_t *h; |
4277
e4b8255e44c3
Separate functions to merge fastcgi/scgi/uwsgi params.
Maxim Dounin <mdounin@mdounin.ru>
parents:
4157
diff
changeset
|
1872 ngx_hash_key_t *hk; |
e4b8255e44c3
Separate functions to merge fastcgi/scgi/uwsgi params.
Maxim Dounin <mdounin@mdounin.ru>
parents:
4157
diff
changeset
|
1873 ngx_hash_init_t hash; |
5909
8d0cf26ce071
Upstream: different header lists for cached and uncached requests.
Roman Arutyunyan <arut@nginx.com>
parents:
5908
diff
changeset
|
1874 ngx_http_upstream_param_t *src, *s; |
4277
e4b8255e44c3
Separate functions to merge fastcgi/scgi/uwsgi params.
Maxim Dounin <mdounin@mdounin.ru>
parents:
4157
diff
changeset
|
1875 ngx_http_script_compile_t sc; |
e4b8255e44c3
Separate functions to merge fastcgi/scgi/uwsgi params.
Maxim Dounin <mdounin@mdounin.ru>
parents:
4157
diff
changeset
|
1876 ngx_http_script_copy_code_t *copy; |
e4b8255e44c3
Separate functions to merge fastcgi/scgi/uwsgi params.
Maxim Dounin <mdounin@mdounin.ru>
parents:
4157
diff
changeset
|
1877 |
5908
f8e80f8c7fc7
Upstream: moved header lists to separate structures.
Roman Arutyunyan <arut@nginx.com>
parents:
5907
diff
changeset
|
1878 if (params->hash.buckets) { |
5907
195561ef367f
Upstream: moved header initializations to separate functions.
Roman Arutyunyan <arut@nginx.com>
parents:
5905
diff
changeset
|
1879 return NGX_OK; |
4278
f57229cba7ad
Fixed fastcgi/scgi/uwsgi_param inheritance.
Maxim Dounin <mdounin@mdounin.ru>
parents:
4277
diff
changeset
|
1880 } |
3568 | 1881 |
5909
8d0cf26ce071
Upstream: different header lists for cached and uncached requests.
Roman Arutyunyan <arut@nginx.com>
parents:
5908
diff
changeset
|
1882 if (conf->params_source == NULL && default_params == NULL) { |
5908
f8e80f8c7fc7
Upstream: moved header lists to separate structures.
Roman Arutyunyan <arut@nginx.com>
parents:
5907
diff
changeset
|
1883 params->hash.buckets = (void *) 1; |
4278
f57229cba7ad
Fixed fastcgi/scgi/uwsgi_param inheritance.
Maxim Dounin <mdounin@mdounin.ru>
parents:
4277
diff
changeset
|
1884 return NGX_OK; |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
1885 } |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
1886 |
5908
f8e80f8c7fc7
Upstream: moved header lists to separate structures.
Roman Arutyunyan <arut@nginx.com>
parents:
5907
diff
changeset
|
1887 params->lengths = ngx_array_create(cf->pool, 64, 1); |
f8e80f8c7fc7
Upstream: moved header lists to separate structures.
Roman Arutyunyan <arut@nginx.com>
parents:
5907
diff
changeset
|
1888 if (params->lengths == NULL) { |
4277
e4b8255e44c3
Separate functions to merge fastcgi/scgi/uwsgi params.
Maxim Dounin <mdounin@mdounin.ru>
parents:
4157
diff
changeset
|
1889 return NGX_ERROR; |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
1890 } |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
1891 |
5908
f8e80f8c7fc7
Upstream: moved header lists to separate structures.
Roman Arutyunyan <arut@nginx.com>
parents:
5907
diff
changeset
|
1892 params->values = ngx_array_create(cf->pool, 512, 1); |
f8e80f8c7fc7
Upstream: moved header lists to separate structures.
Roman Arutyunyan <arut@nginx.com>
parents:
5907
diff
changeset
|
1893 if (params->values == NULL) { |
4277
e4b8255e44c3
Separate functions to merge fastcgi/scgi/uwsgi params.
Maxim Dounin <mdounin@mdounin.ru>
parents:
4157
diff
changeset
|
1894 return NGX_ERROR; |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
1895 } |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
1896 |
3566
b81d44244cb1
allow uwsgi_param to override client headers using HTTP_ parameters
Igor Sysoev <igor@sysoev.ru>
parents:
3565
diff
changeset
|
1897 if (ngx_array_init(&headers_names, cf->temp_pool, 4, sizeof(ngx_hash_key_t)) |
b81d44244cb1
allow uwsgi_param to override client headers using HTTP_ parameters
Igor Sysoev <igor@sysoev.ru>
parents:
3565
diff
changeset
|
1898 != NGX_OK) |
b81d44244cb1
allow uwsgi_param to override client headers using HTTP_ parameters
Igor Sysoev <igor@sysoev.ru>
parents:
3565
diff
changeset
|
1899 { |
4277
e4b8255e44c3
Separate functions to merge fastcgi/scgi/uwsgi params.
Maxim Dounin <mdounin@mdounin.ru>
parents:
4157
diff
changeset
|
1900 return NGX_ERROR; |
3566
b81d44244cb1
allow uwsgi_param to override client headers using HTTP_ parameters
Igor Sysoev <igor@sysoev.ru>
parents:
3565
diff
changeset
|
1901 } |
b81d44244cb1
allow uwsgi_param to override client headers using HTTP_ parameters
Igor Sysoev <igor@sysoev.ru>
parents:
3565
diff
changeset
|
1902 |
4278
f57229cba7ad
Fixed fastcgi/scgi/uwsgi_param inheritance.
Maxim Dounin <mdounin@mdounin.ru>
parents:
4277
diff
changeset
|
1903 if (conf->params_source) { |
f57229cba7ad
Fixed fastcgi/scgi/uwsgi_param inheritance.
Maxim Dounin <mdounin@mdounin.ru>
parents:
4277
diff
changeset
|
1904 src = conf->params_source->elts; |
f57229cba7ad
Fixed fastcgi/scgi/uwsgi_param inheritance.
Maxim Dounin <mdounin@mdounin.ru>
parents:
4277
diff
changeset
|
1905 nsrc = conf->params_source->nelts; |
f57229cba7ad
Fixed fastcgi/scgi/uwsgi_param inheritance.
Maxim Dounin <mdounin@mdounin.ru>
parents:
4277
diff
changeset
|
1906 |
f57229cba7ad
Fixed fastcgi/scgi/uwsgi_param inheritance.
Maxim Dounin <mdounin@mdounin.ru>
parents:
4277
diff
changeset
|
1907 } else { |
f57229cba7ad
Fixed fastcgi/scgi/uwsgi_param inheritance.
Maxim Dounin <mdounin@mdounin.ru>
parents:
4277
diff
changeset
|
1908 src = NULL; |
f57229cba7ad
Fixed fastcgi/scgi/uwsgi_param inheritance.
Maxim Dounin <mdounin@mdounin.ru>
parents:
4277
diff
changeset
|
1909 nsrc = 0; |
f57229cba7ad
Fixed fastcgi/scgi/uwsgi_param inheritance.
Maxim Dounin <mdounin@mdounin.ru>
parents:
4277
diff
changeset
|
1910 } |
3568 | 1911 |
5909
8d0cf26ce071
Upstream: different header lists for cached and uncached requests.
Roman Arutyunyan <arut@nginx.com>
parents:
5908
diff
changeset
|
1912 if (default_params) { |
4330
5ee5ddec17b1
uwsgi: added "if_not_empty" flag support to the "uwsgi_param" directive.
Valentin Bartenev <vbart@nginx.com>
parents:
4278
diff
changeset
|
1913 if (ngx_array_init(¶ms_merged, cf->temp_pool, 4, |
5ee5ddec17b1
uwsgi: added "if_not_empty" flag support to the "uwsgi_param" directive.
Valentin Bartenev <vbart@nginx.com>
parents:
4278
diff
changeset
|
1914 sizeof(ngx_http_upstream_param_t)) |
4278
f57229cba7ad
Fixed fastcgi/scgi/uwsgi_param inheritance.
Maxim Dounin <mdounin@mdounin.ru>
parents:
4277
diff
changeset
|
1915 != NGX_OK) |
f57229cba7ad
Fixed fastcgi/scgi/uwsgi_param inheritance.
Maxim Dounin <mdounin@mdounin.ru>
parents:
4277
diff
changeset
|
1916 { |
f57229cba7ad
Fixed fastcgi/scgi/uwsgi_param inheritance.
Maxim Dounin <mdounin@mdounin.ru>
parents:
4277
diff
changeset
|
1917 return NGX_ERROR; |
f57229cba7ad
Fixed fastcgi/scgi/uwsgi_param inheritance.
Maxim Dounin <mdounin@mdounin.ru>
parents:
4277
diff
changeset
|
1918 } |
f57229cba7ad
Fixed fastcgi/scgi/uwsgi_param inheritance.
Maxim Dounin <mdounin@mdounin.ru>
parents:
4277
diff
changeset
|
1919 |
f57229cba7ad
Fixed fastcgi/scgi/uwsgi_param inheritance.
Maxim Dounin <mdounin@mdounin.ru>
parents:
4277
diff
changeset
|
1920 for (i = 0; i < nsrc; i++) { |
3568 | 1921 |
4278
f57229cba7ad
Fixed fastcgi/scgi/uwsgi_param inheritance.
Maxim Dounin <mdounin@mdounin.ru>
parents:
4277
diff
changeset
|
1922 s = ngx_array_push(¶ms_merged); |
f57229cba7ad
Fixed fastcgi/scgi/uwsgi_param inheritance.
Maxim Dounin <mdounin@mdounin.ru>
parents:
4277
diff
changeset
|
1923 if (s == NULL) { |
f57229cba7ad
Fixed fastcgi/scgi/uwsgi_param inheritance.
Maxim Dounin <mdounin@mdounin.ru>
parents:
4277
diff
changeset
|
1924 return NGX_ERROR; |
f57229cba7ad
Fixed fastcgi/scgi/uwsgi_param inheritance.
Maxim Dounin <mdounin@mdounin.ru>
parents:
4277
diff
changeset
|
1925 } |
f57229cba7ad
Fixed fastcgi/scgi/uwsgi_param inheritance.
Maxim Dounin <mdounin@mdounin.ru>
parents:
4277
diff
changeset
|
1926 |
f57229cba7ad
Fixed fastcgi/scgi/uwsgi_param inheritance.
Maxim Dounin <mdounin@mdounin.ru>
parents:
4277
diff
changeset
|
1927 *s = src[i]; |
f57229cba7ad
Fixed fastcgi/scgi/uwsgi_param inheritance.
Maxim Dounin <mdounin@mdounin.ru>
parents:
4277
diff
changeset
|
1928 } |
f57229cba7ad
Fixed fastcgi/scgi/uwsgi_param inheritance.
Maxim Dounin <mdounin@mdounin.ru>
parents:
4277
diff
changeset
|
1929 |
5909
8d0cf26ce071
Upstream: different header lists for cached and uncached requests.
Roman Arutyunyan <arut@nginx.com>
parents:
5908
diff
changeset
|
1930 h = default_params; |
4278
f57229cba7ad
Fixed fastcgi/scgi/uwsgi_param inheritance.
Maxim Dounin <mdounin@mdounin.ru>
parents:
4277
diff
changeset
|
1931 |
f57229cba7ad
Fixed fastcgi/scgi/uwsgi_param inheritance.
Maxim Dounin <mdounin@mdounin.ru>
parents:
4277
diff
changeset
|
1932 while (h->key.len) { |
f57229cba7ad
Fixed fastcgi/scgi/uwsgi_param inheritance.
Maxim Dounin <mdounin@mdounin.ru>
parents:
4277
diff
changeset
|
1933 |
f57229cba7ad
Fixed fastcgi/scgi/uwsgi_param inheritance.
Maxim Dounin <mdounin@mdounin.ru>
parents:
4277
diff
changeset
|
1934 src = params_merged.elts; |
f57229cba7ad
Fixed fastcgi/scgi/uwsgi_param inheritance.
Maxim Dounin <mdounin@mdounin.ru>
parents:
4277
diff
changeset
|
1935 nsrc = params_merged.nelts; |
f57229cba7ad
Fixed fastcgi/scgi/uwsgi_param inheritance.
Maxim Dounin <mdounin@mdounin.ru>
parents:
4277
diff
changeset
|
1936 |
f57229cba7ad
Fixed fastcgi/scgi/uwsgi_param inheritance.
Maxim Dounin <mdounin@mdounin.ru>
parents:
4277
diff
changeset
|
1937 for (i = 0; i < nsrc; i++) { |
3568 | 1938 if (ngx_strcasecmp(h->key.data, src[i].key.data) == 0) { |
1939 goto next; | |
1940 } | |
1941 } | |
1942 | |
4278
f57229cba7ad
Fixed fastcgi/scgi/uwsgi_param inheritance.
Maxim Dounin <mdounin@mdounin.ru>
parents:
4277
diff
changeset
|
1943 s = ngx_array_push(¶ms_merged); |
3568 | 1944 if (s == NULL) { |
4277
e4b8255e44c3
Separate functions to merge fastcgi/scgi/uwsgi params.
Maxim Dounin <mdounin@mdounin.ru>
parents:
4157
diff
changeset
|
1945 return NGX_ERROR; |
3568 | 1946 } |
1947 | |
4330
5ee5ddec17b1
uwsgi: added "if_not_empty" flag support to the "uwsgi_param" directive.
Valentin Bartenev <vbart@nginx.com>
parents:
4278
diff
changeset
|
1948 s->key = h->key; |
5ee5ddec17b1
uwsgi: added "if_not_empty" flag support to the "uwsgi_param" directive.
Valentin Bartenev <vbart@nginx.com>
parents:
4278
diff
changeset
|
1949 s->value = h->value; |
5451
e68af4e3396f
Upstream: skip empty cache headers.
Maxim Dounin <mdounin@mdounin.ru>
parents:
5441
diff
changeset
|
1950 s->skip_empty = 1; |
3568 | 1951 |
1952 next: | |
1953 | |
1954 h++; | |
1955 } | |
4278
f57229cba7ad
Fixed fastcgi/scgi/uwsgi_param inheritance.
Maxim Dounin <mdounin@mdounin.ru>
parents:
4277
diff
changeset
|
1956 |
f57229cba7ad
Fixed fastcgi/scgi/uwsgi_param inheritance.
Maxim Dounin <mdounin@mdounin.ru>
parents:
4277
diff
changeset
|
1957 src = params_merged.elts; |
f57229cba7ad
Fixed fastcgi/scgi/uwsgi_param inheritance.
Maxim Dounin <mdounin@mdounin.ru>
parents:
4277
diff
changeset
|
1958 nsrc = params_merged.nelts; |
3568 | 1959 } |
1960 | |
4278
f57229cba7ad
Fixed fastcgi/scgi/uwsgi_param inheritance.
Maxim Dounin <mdounin@mdounin.ru>
parents:
4277
diff
changeset
|
1961 for (i = 0; i < nsrc; i++) { |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
1962 |
3566
b81d44244cb1
allow uwsgi_param to override client headers using HTTP_ parameters
Igor Sysoev <igor@sysoev.ru>
parents:
3565
diff
changeset
|
1963 if (src[i].key.len > sizeof("HTTP_") - 1 |
b81d44244cb1
allow uwsgi_param to override client headers using HTTP_ parameters
Igor Sysoev <igor@sysoev.ru>
parents:
3565
diff
changeset
|
1964 && ngx_strncmp(src[i].key.data, "HTTP_", sizeof("HTTP_") - 1) == 0) |
b81d44244cb1
allow uwsgi_param to override client headers using HTTP_ parameters
Igor Sysoev <igor@sysoev.ru>
parents:
3565
diff
changeset
|
1965 { |
b81d44244cb1
allow uwsgi_param to override client headers using HTTP_ parameters
Igor Sysoev <igor@sysoev.ru>
parents:
3565
diff
changeset
|
1966 hk = ngx_array_push(&headers_names); |
b81d44244cb1
allow uwsgi_param to override client headers using HTTP_ parameters
Igor Sysoev <igor@sysoev.ru>
parents:
3565
diff
changeset
|
1967 if (hk == NULL) { |
4277
e4b8255e44c3
Separate functions to merge fastcgi/scgi/uwsgi params.
Maxim Dounin <mdounin@mdounin.ru>
parents:
4157
diff
changeset
|
1968 return NGX_ERROR; |
3566
b81d44244cb1
allow uwsgi_param to override client headers using HTTP_ parameters
Igor Sysoev <igor@sysoev.ru>
parents:
3565
diff
changeset
|
1969 } |
b81d44244cb1
allow uwsgi_param to override client headers using HTTP_ parameters
Igor Sysoev <igor@sysoev.ru>
parents:
3565
diff
changeset
|
1970 |
b81d44244cb1
allow uwsgi_param to override client headers using HTTP_ parameters
Igor Sysoev <igor@sysoev.ru>
parents:
3565
diff
changeset
|
1971 hk->key.len = src[i].key.len - 5; |
b81d44244cb1
allow uwsgi_param to override client headers using HTTP_ parameters
Igor Sysoev <igor@sysoev.ru>
parents:
3565
diff
changeset
|
1972 hk->key.data = src[i].key.data + 5; |
b81d44244cb1
allow uwsgi_param to override client headers using HTTP_ parameters
Igor Sysoev <igor@sysoev.ru>
parents:
3565
diff
changeset
|
1973 hk->key_hash = ngx_hash_key_lc(hk->key.data, hk->key.len); |
b81d44244cb1
allow uwsgi_param to override client headers using HTTP_ parameters
Igor Sysoev <igor@sysoev.ru>
parents:
3565
diff
changeset
|
1974 hk->value = (void *) 1; |
b81d44244cb1
allow uwsgi_param to override client headers using HTTP_ parameters
Igor Sysoev <igor@sysoev.ru>
parents:
3565
diff
changeset
|
1975 |
b81d44244cb1
allow uwsgi_param to override client headers using HTTP_ parameters
Igor Sysoev <igor@sysoev.ru>
parents:
3565
diff
changeset
|
1976 if (src[i].value.len == 0) { |
b81d44244cb1
allow uwsgi_param to override client headers using HTTP_ parameters
Igor Sysoev <igor@sysoev.ru>
parents:
3565
diff
changeset
|
1977 continue; |
b81d44244cb1
allow uwsgi_param to override client headers using HTTP_ parameters
Igor Sysoev <igor@sysoev.ru>
parents:
3565
diff
changeset
|
1978 } |
b81d44244cb1
allow uwsgi_param to override client headers using HTTP_ parameters
Igor Sysoev <igor@sysoev.ru>
parents:
3565
diff
changeset
|
1979 } |
b81d44244cb1
allow uwsgi_param to override client headers using HTTP_ parameters
Igor Sysoev <igor@sysoev.ru>
parents:
3565
diff
changeset
|
1980 |
5908
f8e80f8c7fc7
Upstream: moved header lists to separate structures.
Roman Arutyunyan <arut@nginx.com>
parents:
5907
diff
changeset
|
1981 copy = ngx_array_push_n(params->lengths, |
3548
fc7541a6959d
fix the previous commit when value is static string: remove the special
Igor Sysoev <igor@sysoev.ru>
parents:
3547
diff
changeset
|
1982 sizeof(ngx_http_script_copy_code_t)); |
fc7541a6959d
fix the previous commit when value is static string: remove the special
Igor Sysoev <igor@sysoev.ru>
parents:
3547
diff
changeset
|
1983 if (copy == NULL) { |
4277
e4b8255e44c3
Separate functions to merge fastcgi/scgi/uwsgi params.
Maxim Dounin <mdounin@mdounin.ru>
parents:
4157
diff
changeset
|
1984 return NGX_ERROR; |
3548
fc7541a6959d
fix the previous commit when value is static string: remove the special
Igor Sysoev <igor@sysoev.ru>
parents:
3547
diff
changeset
|
1985 } |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
1986 |
3548
fc7541a6959d
fix the previous commit when value is static string: remove the special
Igor Sysoev <igor@sysoev.ru>
parents:
3547
diff
changeset
|
1987 copy->code = (ngx_http_script_code_pt) ngx_http_script_copy_len_code; |
fc7541a6959d
fix the previous commit when value is static string: remove the special
Igor Sysoev <igor@sysoev.ru>
parents:
3547
diff
changeset
|
1988 copy->len = src[i].key.len; |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
1989 |
5908
f8e80f8c7fc7
Upstream: moved header lists to separate structures.
Roman Arutyunyan <arut@nginx.com>
parents:
5907
diff
changeset
|
1990 copy = ngx_array_push_n(params->lengths, |
4330
5ee5ddec17b1
uwsgi: added "if_not_empty" flag support to the "uwsgi_param" directive.
Valentin Bartenev <vbart@nginx.com>
parents:
4278
diff
changeset
|
1991 sizeof(ngx_http_script_copy_code_t)); |
5ee5ddec17b1
uwsgi: added "if_not_empty" flag support to the "uwsgi_param" directive.
Valentin Bartenev <vbart@nginx.com>
parents:
4278
diff
changeset
|
1992 if (copy == NULL) { |
5ee5ddec17b1
uwsgi: added "if_not_empty" flag support to the "uwsgi_param" directive.
Valentin Bartenev <vbart@nginx.com>
parents:
4278
diff
changeset
|
1993 return NGX_ERROR; |
5ee5ddec17b1
uwsgi: added "if_not_empty" flag support to the "uwsgi_param" directive.
Valentin Bartenev <vbart@nginx.com>
parents:
4278
diff
changeset
|
1994 } |
5ee5ddec17b1
uwsgi: added "if_not_empty" flag support to the "uwsgi_param" directive.
Valentin Bartenev <vbart@nginx.com>
parents:
4278
diff
changeset
|
1995 |
5ee5ddec17b1
uwsgi: added "if_not_empty" flag support to the "uwsgi_param" directive.
Valentin Bartenev <vbart@nginx.com>
parents:
4278
diff
changeset
|
1996 copy->code = (ngx_http_script_code_pt) ngx_http_script_copy_len_code; |
5ee5ddec17b1
uwsgi: added "if_not_empty" flag support to the "uwsgi_param" directive.
Valentin Bartenev <vbart@nginx.com>
parents:
4278
diff
changeset
|
1997 copy->len = src[i].skip_empty; |
5ee5ddec17b1
uwsgi: added "if_not_empty" flag support to the "uwsgi_param" directive.
Valentin Bartenev <vbart@nginx.com>
parents:
4278
diff
changeset
|
1998 |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
1999 |
3548
fc7541a6959d
fix the previous commit when value is static string: remove the special
Igor Sysoev <igor@sysoev.ru>
parents:
3547
diff
changeset
|
2000 size = (sizeof(ngx_http_script_copy_code_t) |
fc7541a6959d
fix the previous commit when value is static string: remove the special
Igor Sysoev <igor@sysoev.ru>
parents:
3547
diff
changeset
|
2001 + src[i].key.len + sizeof(uintptr_t) - 1) |
fc7541a6959d
fix the previous commit when value is static string: remove the special
Igor Sysoev <igor@sysoev.ru>
parents:
3547
diff
changeset
|
2002 & ~(sizeof(uintptr_t) - 1); |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
2003 |
5908
f8e80f8c7fc7
Upstream: moved header lists to separate structures.
Roman Arutyunyan <arut@nginx.com>
parents:
5907
diff
changeset
|
2004 copy = ngx_array_push_n(params->values, size); |
3548
fc7541a6959d
fix the previous commit when value is static string: remove the special
Igor Sysoev <igor@sysoev.ru>
parents:
3547
diff
changeset
|
2005 if (copy == NULL) { |
4277
e4b8255e44c3
Separate functions to merge fastcgi/scgi/uwsgi params.
Maxim Dounin <mdounin@mdounin.ru>
parents:
4157
diff
changeset
|
2006 return NGX_ERROR; |
3548
fc7541a6959d
fix the previous commit when value is static string: remove the special
Igor Sysoev <igor@sysoev.ru>
parents:
3547
diff
changeset
|
2007 } |
3543
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
2008 |
3548
fc7541a6959d
fix the previous commit when value is static string: remove the special
Igor Sysoev <igor@sysoev.ru>
parents:
3547
diff
changeset
|
2009 copy->code = ngx_http_script_copy_code; |
fc7541a6959d
fix the previous commit when value is static string: remove the special
Igor Sysoev <igor@sysoev.ru>
parents:
3547
diff
changeset
|
2010 copy->len = src[i].key.len; |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
2011 |
3548
fc7541a6959d
fix the previous commit when value is static string: remove the special
Igor Sysoev <igor@sysoev.ru>
parents:
3547
diff
changeset
|
2012 p = (u_char *) copy + sizeof(ngx_http_script_copy_code_t); |
fc7541a6959d
fix the previous commit when value is static string: remove the special
Igor Sysoev <igor@sysoev.ru>
parents:
3547
diff
changeset
|
2013 ngx_memcpy(p, src[i].key.data, src[i].key.len); |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
2014 |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
2015 |
3548
fc7541a6959d
fix the previous commit when value is static string: remove the special
Igor Sysoev <igor@sysoev.ru>
parents:
3547
diff
changeset
|
2016 ngx_memzero(&sc, sizeof(ngx_http_script_compile_t)); |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
2017 |
3548
fc7541a6959d
fix the previous commit when value is static string: remove the special
Igor Sysoev <igor@sysoev.ru>
parents:
3547
diff
changeset
|
2018 sc.cf = cf; |
fc7541a6959d
fix the previous commit when value is static string: remove the special
Igor Sysoev <igor@sysoev.ru>
parents:
3547
diff
changeset
|
2019 sc.source = &src[i].value; |
5908
f8e80f8c7fc7
Upstream: moved header lists to separate structures.
Roman Arutyunyan <arut@nginx.com>
parents:
5907
diff
changeset
|
2020 sc.flushes = ¶ms->flushes; |
f8e80f8c7fc7
Upstream: moved header lists to separate structures.
Roman Arutyunyan <arut@nginx.com>
parents:
5907
diff
changeset
|
2021 sc.lengths = ¶ms->lengths; |
f8e80f8c7fc7
Upstream: moved header lists to separate structures.
Roman Arutyunyan <arut@nginx.com>
parents:
5907
diff
changeset
|
2022 sc.values = ¶ms->values; |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
2023 |
3548
fc7541a6959d
fix the previous commit when value is static string: remove the special
Igor Sysoev <igor@sysoev.ru>
parents:
3547
diff
changeset
|
2024 if (ngx_http_script_compile(&sc) != NGX_OK) { |
4277
e4b8255e44c3
Separate functions to merge fastcgi/scgi/uwsgi params.
Maxim Dounin <mdounin@mdounin.ru>
parents:
4157
diff
changeset
|
2025 return NGX_ERROR; |
3542
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
2026 } |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
2027 |
5908
f8e80f8c7fc7
Upstream: moved header lists to separate structures.
Roman Arutyunyan <arut@nginx.com>
parents:
5907
diff
changeset
|
2028 code = ngx_array_push_n(params->lengths, sizeof(uintptr_t)); |
3542
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
2029 if (code == NULL) { |
4277
e4b8255e44c3
Separate functions to merge fastcgi/scgi/uwsgi params.
Maxim Dounin <mdounin@mdounin.ru>
parents:
4157
diff
changeset
|
2030 return NGX_ERROR; |
3542
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
2031 } |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
2032 |
3542
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
2033 *code = (uintptr_t) NULL; |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
2034 |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
2035 |
5908
f8e80f8c7fc7
Upstream: moved header lists to separate structures.
Roman Arutyunyan <arut@nginx.com>
parents:
5907
diff
changeset
|
2036 code = ngx_array_push_n(params->values, sizeof(uintptr_t)); |
3542
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
2037 if (code == NULL) { |
4277
e4b8255e44c3
Separate functions to merge fastcgi/scgi/uwsgi params.
Maxim Dounin <mdounin@mdounin.ru>
parents:
4157
diff
changeset
|
2038 return NGX_ERROR; |
3542
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
2039 } |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
2040 |
3542
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
2041 *code = (uintptr_t) NULL; |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
2042 } |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
2043 |
5908
f8e80f8c7fc7
Upstream: moved header lists to separate structures.
Roman Arutyunyan <arut@nginx.com>
parents:
5907
diff
changeset
|
2044 code = ngx_array_push_n(params->lengths, sizeof(uintptr_t)); |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
2045 if (code == NULL) { |
4277
e4b8255e44c3
Separate functions to merge fastcgi/scgi/uwsgi params.
Maxim Dounin <mdounin@mdounin.ru>
parents:
4157
diff
changeset
|
2046 return NGX_ERROR; |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
2047 } |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
2048 |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
2049 *code = (uintptr_t) NULL; |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
2050 |
5908
f8e80f8c7fc7
Upstream: moved header lists to separate structures.
Roman Arutyunyan <arut@nginx.com>
parents:
5907
diff
changeset
|
2051 params->number = headers_names.nelts; |
f8e80f8c7fc7
Upstream: moved header lists to separate structures.
Roman Arutyunyan <arut@nginx.com>
parents:
5907
diff
changeset
|
2052 |
f8e80f8c7fc7
Upstream: moved header lists to separate structures.
Roman Arutyunyan <arut@nginx.com>
parents:
5907
diff
changeset
|
2053 hash.hash = ¶ms->hash; |
3566
b81d44244cb1
allow uwsgi_param to override client headers using HTTP_ parameters
Igor Sysoev <igor@sysoev.ru>
parents:
3565
diff
changeset
|
2054 hash.key = ngx_hash_key_lc; |
b81d44244cb1
allow uwsgi_param to override client headers using HTTP_ parameters
Igor Sysoev <igor@sysoev.ru>
parents:
3565
diff
changeset
|
2055 hash.max_size = 512; |
b81d44244cb1
allow uwsgi_param to override client headers using HTTP_ parameters
Igor Sysoev <igor@sysoev.ru>
parents:
3565
diff
changeset
|
2056 hash.bucket_size = 64; |
b81d44244cb1
allow uwsgi_param to override client headers using HTTP_ parameters
Igor Sysoev <igor@sysoev.ru>
parents:
3565
diff
changeset
|
2057 hash.name = "uwsgi_params_hash"; |
b81d44244cb1
allow uwsgi_param to override client headers using HTTP_ parameters
Igor Sysoev <igor@sysoev.ru>
parents:
3565
diff
changeset
|
2058 hash.pool = cf->pool; |
b81d44244cb1
allow uwsgi_param to override client headers using HTTP_ parameters
Igor Sysoev <igor@sysoev.ru>
parents:
3565
diff
changeset
|
2059 hash.temp_pool = NULL; |
b81d44244cb1
allow uwsgi_param to override client headers using HTTP_ parameters
Igor Sysoev <igor@sysoev.ru>
parents:
3565
diff
changeset
|
2060 |
4277
e4b8255e44c3
Separate functions to merge fastcgi/scgi/uwsgi params.
Maxim Dounin <mdounin@mdounin.ru>
parents:
4157
diff
changeset
|
2061 return ngx_hash_init(&hash, headers_names.elts, headers_names.nelts); |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
2062 } |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
2063 |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
2064 |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
2065 static char * |
3543
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
2066 ngx_http_uwsgi_pass(ngx_conf_t *cf, ngx_command_t *cmd, void *conf) |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
2067 { |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
2068 ngx_http_uwsgi_loc_conf_t *uwcf = conf; |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
2069 |
5457
c82b2e020b9f
SSL support in the uwsgi module.
Maxim Dounin <mdounin@mdounin.ru>
parents:
5451
diff
changeset
|
2070 size_t add; |
3543
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
2071 ngx_url_t u; |
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
2072 ngx_str_t *value, *url; |
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
2073 ngx_uint_t n; |
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
2074 ngx_http_core_loc_conf_t *clcf; |
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
2075 ngx_http_script_compile_t sc; |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
2076 |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
2077 if (uwcf->upstream.upstream || uwcf->uwsgi_lengths) { |
3542
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
2078 return "is duplicate"; |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
2079 } |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
2080 |
5758
f3df4e420ae7
Style: remove whitespace between function name and parentheses.
Piotr Sikora <piotr@cloudflare.com>
parents:
5738
diff
changeset
|
2081 clcf = ngx_http_conf_get_module_loc_conf(cf, ngx_http_core_module); |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
2082 clcf->handler = ngx_http_uwsgi_handler; |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
2083 |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
2084 value = cf->args->elts; |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
2085 |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
2086 url = &value[1]; |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
2087 |
3543
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
2088 n = ngx_http_script_variables_count(url); |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
2089 |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
2090 if (n) { |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
2091 |
3543
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
2092 ngx_memzero(&sc, sizeof(ngx_http_script_compile_t)); |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
2093 |
3542
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
2094 sc.cf = cf; |
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
2095 sc.source = url; |
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
2096 sc.lengths = &uwcf->uwsgi_lengths; |
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
2097 sc.values = &uwcf->uwsgi_values; |
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
2098 sc.variables = n; |
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
2099 sc.complete_lengths = 1; |
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
2100 sc.complete_values = 1; |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
2101 |
3543
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
2102 if (ngx_http_script_compile(&sc) != NGX_OK) { |
3542
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
2103 return NGX_CONF_ERROR; |
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
2104 } |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
2105 |
5457
c82b2e020b9f
SSL support in the uwsgi module.
Maxim Dounin <mdounin@mdounin.ru>
parents:
5451
diff
changeset
|
2106 #if (NGX_HTTP_SSL) |
c82b2e020b9f
SSL support in the uwsgi module.
Maxim Dounin <mdounin@mdounin.ru>
parents:
5451
diff
changeset
|
2107 uwcf->ssl = 1; |
c82b2e020b9f
SSL support in the uwsgi module.
Maxim Dounin <mdounin@mdounin.ru>
parents:
5451
diff
changeset
|
2108 #endif |
c82b2e020b9f
SSL support in the uwsgi module.
Maxim Dounin <mdounin@mdounin.ru>
parents:
5451
diff
changeset
|
2109 |
3542
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
2110 return NGX_CONF_OK; |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
2111 } |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
2112 |
5457
c82b2e020b9f
SSL support in the uwsgi module.
Maxim Dounin <mdounin@mdounin.ru>
parents:
5451
diff
changeset
|
2113 if (ngx_strncasecmp(url->data, (u_char *) "uwsgi://", 8) == 0) { |
c82b2e020b9f
SSL support in the uwsgi module.
Maxim Dounin <mdounin@mdounin.ru>
parents:
5451
diff
changeset
|
2114 add = 8; |
c82b2e020b9f
SSL support in the uwsgi module.
Maxim Dounin <mdounin@mdounin.ru>
parents:
5451
diff
changeset
|
2115 |
c82b2e020b9f
SSL support in the uwsgi module.
Maxim Dounin <mdounin@mdounin.ru>
parents:
5451
diff
changeset
|
2116 } else if (ngx_strncasecmp(url->data, (u_char *) "suwsgi://", 9) == 0) { |
c82b2e020b9f
SSL support in the uwsgi module.
Maxim Dounin <mdounin@mdounin.ru>
parents:
5451
diff
changeset
|
2117 |
c82b2e020b9f
SSL support in the uwsgi module.
Maxim Dounin <mdounin@mdounin.ru>
parents:
5451
diff
changeset
|
2118 #if (NGX_HTTP_SSL) |
c82b2e020b9f
SSL support in the uwsgi module.
Maxim Dounin <mdounin@mdounin.ru>
parents:
5451
diff
changeset
|
2119 add = 9; |
c82b2e020b9f
SSL support in the uwsgi module.
Maxim Dounin <mdounin@mdounin.ru>
parents:
5451
diff
changeset
|
2120 uwcf->ssl = 1; |
c82b2e020b9f
SSL support in the uwsgi module.
Maxim Dounin <mdounin@mdounin.ru>
parents:
5451
diff
changeset
|
2121 #else |
c82b2e020b9f
SSL support in the uwsgi module.
Maxim Dounin <mdounin@mdounin.ru>
parents:
5451
diff
changeset
|
2122 ngx_conf_log_error(NGX_LOG_EMERG, cf, 0, |
c82b2e020b9f
SSL support in the uwsgi module.
Maxim Dounin <mdounin@mdounin.ru>
parents:
5451
diff
changeset
|
2123 "suwsgi protocol requires SSL support"); |
c82b2e020b9f
SSL support in the uwsgi module.
Maxim Dounin <mdounin@mdounin.ru>
parents:
5451
diff
changeset
|
2124 return NGX_CONF_ERROR; |
c82b2e020b9f
SSL support in the uwsgi module.
Maxim Dounin <mdounin@mdounin.ru>
parents:
5451
diff
changeset
|
2125 #endif |
c82b2e020b9f
SSL support in the uwsgi module.
Maxim Dounin <mdounin@mdounin.ru>
parents:
5451
diff
changeset
|
2126 |
c82b2e020b9f
SSL support in the uwsgi module.
Maxim Dounin <mdounin@mdounin.ru>
parents:
5451
diff
changeset
|
2127 } else { |
c82b2e020b9f
SSL support in the uwsgi module.
Maxim Dounin <mdounin@mdounin.ru>
parents:
5451
diff
changeset
|
2128 add = 0; |
c82b2e020b9f
SSL support in the uwsgi module.
Maxim Dounin <mdounin@mdounin.ru>
parents:
5451
diff
changeset
|
2129 } |
c82b2e020b9f
SSL support in the uwsgi module.
Maxim Dounin <mdounin@mdounin.ru>
parents:
5451
diff
changeset
|
2130 |
3543
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
2131 ngx_memzero(&u, sizeof(ngx_url_t)); |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
2132 |
5457
c82b2e020b9f
SSL support in the uwsgi module.
Maxim Dounin <mdounin@mdounin.ru>
parents:
5451
diff
changeset
|
2133 u.url.len = url->len - add; |
c82b2e020b9f
SSL support in the uwsgi module.
Maxim Dounin <mdounin@mdounin.ru>
parents:
5451
diff
changeset
|
2134 u.url.data = url->data + add; |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
2135 u.no_resolve = 1; |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
2136 |
3543
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
2137 uwcf->upstream.upstream = ngx_http_upstream_add(cf, &u, 0); |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
2138 if (uwcf->upstream.upstream == NULL) { |
3542
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
2139 return NGX_CONF_ERROR; |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
2140 } |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
2141 |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
2142 if (clcf->name.data[clcf->name.len - 1] == '/') { |
3542
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
2143 clcf->auto_redirect = 1; |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
2144 } |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
2145 |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
2146 return NGX_CONF_OK; |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
2147 } |
3565 | 2148 |
2149 | |
2150 static char * | |
2151 ngx_http_uwsgi_store(ngx_conf_t *cf, ngx_command_t *cmd, void *conf) | |
2152 { | |
2153 ngx_http_uwsgi_loc_conf_t *uwcf = conf; | |
2154 | |
2155 ngx_str_t *value; | |
2156 ngx_http_script_compile_t sc; | |
2157 | |
5947
d9025ea1f5a5
Upstream: simplified proxy_store and friends configuration code.
Valentin Bartenev <vbart@nginx.com>
parents:
5940
diff
changeset
|
2158 if (uwcf->upstream.store != NGX_CONF_UNSET) { |
3565 | 2159 return "is duplicate"; |
2160 } | |
2161 | |
2162 value = cf->args->elts; | |
2163 | |
3568 | 2164 if (ngx_strcmp(value[1].data, "off") == 0) { |
2165 uwcf->upstream.store = 0; | |
3565 | 2166 return NGX_CONF_OK; |
2167 } | |
2168 | |
3568 | 2169 #if (NGX_HTTP_CACHE) |
2170 | |
5949
634da79665d3
Upstream: refactored proxy_cache and friends.
Valentin Bartenev <vbart@nginx.com>
parents:
5948
diff
changeset
|
2171 if (uwcf->upstream.cache > 0) { |
3568 | 2172 return "is incompatible with \"uwsgi_cache\""; |
2173 } | |
2174 | |
2175 #endif | |
2176 | |
5947
d9025ea1f5a5
Upstream: simplified proxy_store and friends configuration code.
Valentin Bartenev <vbart@nginx.com>
parents:
5940
diff
changeset
|
2177 uwcf->upstream.store = 1; |
d9025ea1f5a5
Upstream: simplified proxy_store and friends configuration code.
Valentin Bartenev <vbart@nginx.com>
parents:
5940
diff
changeset
|
2178 |
3568 | 2179 if (ngx_strcmp(value[1].data, "on") == 0) { |
3565 | 2180 return NGX_CONF_OK; |
2181 } | |
2182 | |
2183 /* include the terminating '\0' into script */ | |
2184 value[1].len++; | |
2185 | |
2186 ngx_memzero(&sc, sizeof(ngx_http_script_compile_t)); | |
2187 | |
2188 sc.cf = cf; | |
2189 sc.source = &value[1]; | |
2190 sc.lengths = &uwcf->upstream.store_lengths; | |
2191 sc.values = &uwcf->upstream.store_values; | |
5496
9d056f10fb99
Style: removed surplus semicolons.
Valentin Bartenev <vbart@nginx.com>
parents:
5467
diff
changeset
|
2192 sc.variables = ngx_http_script_variables_count(&value[1]); |
3565 | 2193 sc.complete_lengths = 1; |
2194 sc.complete_values = 1; | |
2195 | |
2196 if (ngx_http_script_compile(&sc) != NGX_OK) { | |
2197 return NGX_CONF_ERROR; | |
2198 } | |
2199 | |
2200 return NGX_CONF_OK; | |
2201 } | |
3568 | 2202 |
2203 | |
2204 #if (NGX_HTTP_CACHE) | |
2205 | |
2206 static char * | |
2207 ngx_http_uwsgi_cache(ngx_conf_t *cf, ngx_command_t *cmd, void *conf) | |
2208 { | |
2209 ngx_http_uwsgi_loc_conf_t *uwcf = conf; | |
2210 | |
5951
610832763648
Upstream: added variables support to proxy_cache and friends.
Valentin Bartenev <vbart@nginx.com>
parents:
5949
diff
changeset
|
2211 ngx_str_t *value; |
610832763648
Upstream: added variables support to proxy_cache and friends.
Valentin Bartenev <vbart@nginx.com>
parents:
5949
diff
changeset
|
2212 ngx_http_complex_value_t cv; |
610832763648
Upstream: added variables support to proxy_cache and friends.
Valentin Bartenev <vbart@nginx.com>
parents:
5949
diff
changeset
|
2213 ngx_http_compile_complex_value_t ccv; |
3568 | 2214 |
2215 value = cf->args->elts; | |
2216 | |
5949
634da79665d3
Upstream: refactored proxy_cache and friends.
Valentin Bartenev <vbart@nginx.com>
parents:
5948
diff
changeset
|
2217 if (uwcf->upstream.cache != NGX_CONF_UNSET) { |
3568 | 2218 return "is duplicate"; |
2219 } | |
2220 | |
2221 if (ngx_strcmp(value[1].data, "off") == 0) { | |
5949
634da79665d3
Upstream: refactored proxy_cache and friends.
Valentin Bartenev <vbart@nginx.com>
parents:
5948
diff
changeset
|
2222 uwcf->upstream.cache = 0; |
3568 | 2223 return NGX_CONF_OK; |
2224 } | |
2225 | |
5947
d9025ea1f5a5
Upstream: simplified proxy_store and friends configuration code.
Valentin Bartenev <vbart@nginx.com>
parents:
5940
diff
changeset
|
2226 if (uwcf->upstream.store > 0) { |
3568 | 2227 return "is incompatible with \"uwsgi_store\""; |
2228 } | |
2229 | |
5949
634da79665d3
Upstream: refactored proxy_cache and friends.
Valentin Bartenev <vbart@nginx.com>
parents:
5948
diff
changeset
|
2230 uwcf->upstream.cache = 1; |
634da79665d3
Upstream: refactored proxy_cache and friends.
Valentin Bartenev <vbart@nginx.com>
parents:
5948
diff
changeset
|
2231 |
5951
610832763648
Upstream: added variables support to proxy_cache and friends.
Valentin Bartenev <vbart@nginx.com>
parents:
5949
diff
changeset
|
2232 ngx_memzero(&ccv, sizeof(ngx_http_compile_complex_value_t)); |
610832763648
Upstream: added variables support to proxy_cache and friends.
Valentin Bartenev <vbart@nginx.com>
parents:
5949
diff
changeset
|
2233 |
610832763648
Upstream: added variables support to proxy_cache and friends.
Valentin Bartenev <vbart@nginx.com>
parents:
5949
diff
changeset
|
2234 ccv.cf = cf; |
610832763648
Upstream: added variables support to proxy_cache and friends.
Valentin Bartenev <vbart@nginx.com>
parents:
5949
diff
changeset
|
2235 ccv.value = &value[1]; |
610832763648
Upstream: added variables support to proxy_cache and friends.
Valentin Bartenev <vbart@nginx.com>
parents:
5949
diff
changeset
|
2236 ccv.complex_value = &cv; |
610832763648
Upstream: added variables support to proxy_cache and friends.
Valentin Bartenev <vbart@nginx.com>
parents:
5949
diff
changeset
|
2237 |
610832763648
Upstream: added variables support to proxy_cache and friends.
Valentin Bartenev <vbart@nginx.com>
parents:
5949
diff
changeset
|
2238 if (ngx_http_compile_complex_value(&ccv) != NGX_OK) { |
610832763648
Upstream: added variables support to proxy_cache and friends.
Valentin Bartenev <vbart@nginx.com>
parents:
5949
diff
changeset
|
2239 return NGX_CONF_ERROR; |
610832763648
Upstream: added variables support to proxy_cache and friends.
Valentin Bartenev <vbart@nginx.com>
parents:
5949
diff
changeset
|
2240 } |
610832763648
Upstream: added variables support to proxy_cache and friends.
Valentin Bartenev <vbart@nginx.com>
parents:
5949
diff
changeset
|
2241 |
610832763648
Upstream: added variables support to proxy_cache and friends.
Valentin Bartenev <vbart@nginx.com>
parents:
5949
diff
changeset
|
2242 if (cv.lengths != NULL) { |
610832763648
Upstream: added variables support to proxy_cache and friends.
Valentin Bartenev <vbart@nginx.com>
parents:
5949
diff
changeset
|
2243 |
610832763648
Upstream: added variables support to proxy_cache and friends.
Valentin Bartenev <vbart@nginx.com>
parents:
5949
diff
changeset
|
2244 uwcf->upstream.cache_value = ngx_palloc(cf->pool, |
610832763648
Upstream: added variables support to proxy_cache and friends.
Valentin Bartenev <vbart@nginx.com>
parents:
5949
diff
changeset
|
2245 sizeof(ngx_http_complex_value_t)); |
610832763648
Upstream: added variables support to proxy_cache and friends.
Valentin Bartenev <vbart@nginx.com>
parents:
5949
diff
changeset
|
2246 if (uwcf->upstream.cache_value == NULL) { |
610832763648
Upstream: added variables support to proxy_cache and friends.
Valentin Bartenev <vbart@nginx.com>
parents:
5949
diff
changeset
|
2247 return NGX_CONF_ERROR; |
610832763648
Upstream: added variables support to proxy_cache and friends.
Valentin Bartenev <vbart@nginx.com>
parents:
5949
diff
changeset
|
2248 } |
610832763648
Upstream: added variables support to proxy_cache and friends.
Valentin Bartenev <vbart@nginx.com>
parents:
5949
diff
changeset
|
2249 |
610832763648
Upstream: added variables support to proxy_cache and friends.
Valentin Bartenev <vbart@nginx.com>
parents:
5949
diff
changeset
|
2250 *uwcf->upstream.cache_value = cv; |
610832763648
Upstream: added variables support to proxy_cache and friends.
Valentin Bartenev <vbart@nginx.com>
parents:
5949
diff
changeset
|
2251 |
610832763648
Upstream: added variables support to proxy_cache and friends.
Valentin Bartenev <vbart@nginx.com>
parents:
5949
diff
changeset
|
2252 return NGX_CONF_OK; |
610832763648
Upstream: added variables support to proxy_cache and friends.
Valentin Bartenev <vbart@nginx.com>
parents:
5949
diff
changeset
|
2253 } |
610832763648
Upstream: added variables support to proxy_cache and friends.
Valentin Bartenev <vbart@nginx.com>
parents:
5949
diff
changeset
|
2254 |
5949
634da79665d3
Upstream: refactored proxy_cache and friends.
Valentin Bartenev <vbart@nginx.com>
parents:
5948
diff
changeset
|
2255 uwcf->upstream.cache_zone = ngx_shared_memory_add(cf, &value[1], 0, |
634da79665d3
Upstream: refactored proxy_cache and friends.
Valentin Bartenev <vbart@nginx.com>
parents:
5948
diff
changeset
|
2256 &ngx_http_uwsgi_module); |
634da79665d3
Upstream: refactored proxy_cache and friends.
Valentin Bartenev <vbart@nginx.com>
parents:
5948
diff
changeset
|
2257 if (uwcf->upstream.cache_zone == NULL) { |
3568 | 2258 return NGX_CONF_ERROR; |
2259 } | |
2260 | |
2261 return NGX_CONF_OK; | |
2262 } | |
2263 | |
2264 | |
2265 static char * | |
2266 ngx_http_uwsgi_cache_key(ngx_conf_t *cf, ngx_command_t *cmd, void *conf) | |
2267 { | |
2268 ngx_http_uwsgi_loc_conf_t *uwcf = conf; | |
2269 | |
2270 ngx_str_t *value; | |
2271 ngx_http_compile_complex_value_t ccv; | |
2272 | |
2273 value = cf->args->elts; | |
2274 | |
4947
4251e72b8bb4
Allow the complex value to be defined as an empty string.
Ruslan Ermilov <ru@nginx.com>
parents:
4615
diff
changeset
|
2275 if (uwcf->cache_key.value.data) { |
3568 | 2276 return "is duplicate"; |
2277 } | |
2278 | |
2279 ngx_memzero(&ccv, sizeof(ngx_http_compile_complex_value_t)); | |
2280 | |
2281 ccv.cf = cf; | |
2282 ccv.value = &value[1]; | |
2283 ccv.complex_value = &uwcf->cache_key; | |
2284 | |
2285 if (ngx_http_compile_complex_value(&ccv) != NGX_OK) { | |
2286 return NGX_CONF_ERROR; | |
2287 } | |
2288 | |
2289 return NGX_CONF_OK; | |
2290 } | |
2291 | |
2292 #endif | |
5457
c82b2e020b9f
SSL support in the uwsgi module.
Maxim Dounin <mdounin@mdounin.ru>
parents:
5451
diff
changeset
|
2293 |
c82b2e020b9f
SSL support in the uwsgi module.
Maxim Dounin <mdounin@mdounin.ru>
parents:
5451
diff
changeset
|
2294 |
c82b2e020b9f
SSL support in the uwsgi module.
Maxim Dounin <mdounin@mdounin.ru>
parents:
5451
diff
changeset
|
2295 #if (NGX_HTTP_SSL) |
c82b2e020b9f
SSL support in the uwsgi module.
Maxim Dounin <mdounin@mdounin.ru>
parents:
5451
diff
changeset
|
2296 |
5900
20d966ad5e89
Upstream: add "proxy_ssl_certificate" and friends.
Piotr Sikora <piotr@cloudflare.com>
parents:
5883
diff
changeset
|
2297 static char * |
20d966ad5e89
Upstream: add "proxy_ssl_certificate" and friends.
Piotr Sikora <piotr@cloudflare.com>
parents:
5883
diff
changeset
|
2298 ngx_http_uwsgi_ssl_password_file(ngx_conf_t *cf, ngx_command_t *cmd, void *conf) |
20d966ad5e89
Upstream: add "proxy_ssl_certificate" and friends.
Piotr Sikora <piotr@cloudflare.com>
parents:
5883
diff
changeset
|
2299 { |
20d966ad5e89
Upstream: add "proxy_ssl_certificate" and friends.
Piotr Sikora <piotr@cloudflare.com>
parents:
5883
diff
changeset
|
2300 ngx_http_uwsgi_loc_conf_t *uwcf = conf; |
20d966ad5e89
Upstream: add "proxy_ssl_certificate" and friends.
Piotr Sikora <piotr@cloudflare.com>
parents:
5883
diff
changeset
|
2301 |
20d966ad5e89
Upstream: add "proxy_ssl_certificate" and friends.
Piotr Sikora <piotr@cloudflare.com>
parents:
5883
diff
changeset
|
2302 ngx_str_t *value; |
20d966ad5e89
Upstream: add "proxy_ssl_certificate" and friends.
Piotr Sikora <piotr@cloudflare.com>
parents:
5883
diff
changeset
|
2303 |
20d966ad5e89
Upstream: add "proxy_ssl_certificate" and friends.
Piotr Sikora <piotr@cloudflare.com>
parents:
5883
diff
changeset
|
2304 if (uwcf->ssl_passwords != NGX_CONF_UNSET_PTR) { |
20d966ad5e89
Upstream: add "proxy_ssl_certificate" and friends.
Piotr Sikora <piotr@cloudflare.com>
parents:
5883
diff
changeset
|
2305 return "is duplicate"; |
20d966ad5e89
Upstream: add "proxy_ssl_certificate" and friends.
Piotr Sikora <piotr@cloudflare.com>
parents:
5883
diff
changeset
|
2306 } |
20d966ad5e89
Upstream: add "proxy_ssl_certificate" and friends.
Piotr Sikora <piotr@cloudflare.com>
parents:
5883
diff
changeset
|
2307 |
20d966ad5e89
Upstream: add "proxy_ssl_certificate" and friends.
Piotr Sikora <piotr@cloudflare.com>
parents:
5883
diff
changeset
|
2308 value = cf->args->elts; |
20d966ad5e89
Upstream: add "proxy_ssl_certificate" and friends.
Piotr Sikora <piotr@cloudflare.com>
parents:
5883
diff
changeset
|
2309 |
20d966ad5e89
Upstream: add "proxy_ssl_certificate" and friends.
Piotr Sikora <piotr@cloudflare.com>
parents:
5883
diff
changeset
|
2310 uwcf->ssl_passwords = ngx_ssl_read_password_file(cf, &value[1]); |
20d966ad5e89
Upstream: add "proxy_ssl_certificate" and friends.
Piotr Sikora <piotr@cloudflare.com>
parents:
5883
diff
changeset
|
2311 |
20d966ad5e89
Upstream: add "proxy_ssl_certificate" and friends.
Piotr Sikora <piotr@cloudflare.com>
parents:
5883
diff
changeset
|
2312 if (uwcf->ssl_passwords == NULL) { |
20d966ad5e89
Upstream: add "proxy_ssl_certificate" and friends.
Piotr Sikora <piotr@cloudflare.com>
parents:
5883
diff
changeset
|
2313 return NGX_CONF_ERROR; |
20d966ad5e89
Upstream: add "proxy_ssl_certificate" and friends.
Piotr Sikora <piotr@cloudflare.com>
parents:
5883
diff
changeset
|
2314 } |
20d966ad5e89
Upstream: add "proxy_ssl_certificate" and friends.
Piotr Sikora <piotr@cloudflare.com>
parents:
5883
diff
changeset
|
2315 |
20d966ad5e89
Upstream: add "proxy_ssl_certificate" and friends.
Piotr Sikora <piotr@cloudflare.com>
parents:
5883
diff
changeset
|
2316 return NGX_CONF_OK; |
20d966ad5e89
Upstream: add "proxy_ssl_certificate" and friends.
Piotr Sikora <piotr@cloudflare.com>
parents:
5883
diff
changeset
|
2317 } |
20d966ad5e89
Upstream: add "proxy_ssl_certificate" and friends.
Piotr Sikora <piotr@cloudflare.com>
parents:
5883
diff
changeset
|
2318 |
20d966ad5e89
Upstream: add "proxy_ssl_certificate" and friends.
Piotr Sikora <piotr@cloudflare.com>
parents:
5883
diff
changeset
|
2319 |
5457
c82b2e020b9f
SSL support in the uwsgi module.
Maxim Dounin <mdounin@mdounin.ru>
parents:
5451
diff
changeset
|
2320 static ngx_int_t |
c82b2e020b9f
SSL support in the uwsgi module.
Maxim Dounin <mdounin@mdounin.ru>
parents:
5451
diff
changeset
|
2321 ngx_http_uwsgi_set_ssl(ngx_conf_t *cf, ngx_http_uwsgi_loc_conf_t *uwcf) |
c82b2e020b9f
SSL support in the uwsgi module.
Maxim Dounin <mdounin@mdounin.ru>
parents:
5451
diff
changeset
|
2322 { |
c82b2e020b9f
SSL support in the uwsgi module.
Maxim Dounin <mdounin@mdounin.ru>
parents:
5451
diff
changeset
|
2323 ngx_pool_cleanup_t *cln; |
c82b2e020b9f
SSL support in the uwsgi module.
Maxim Dounin <mdounin@mdounin.ru>
parents:
5451
diff
changeset
|
2324 |
c82b2e020b9f
SSL support in the uwsgi module.
Maxim Dounin <mdounin@mdounin.ru>
parents:
5451
diff
changeset
|
2325 uwcf->upstream.ssl = ngx_pcalloc(cf->pool, sizeof(ngx_ssl_t)); |
c82b2e020b9f
SSL support in the uwsgi module.
Maxim Dounin <mdounin@mdounin.ru>
parents:
5451
diff
changeset
|
2326 if (uwcf->upstream.ssl == NULL) { |
c82b2e020b9f
SSL support in the uwsgi module.
Maxim Dounin <mdounin@mdounin.ru>
parents:
5451
diff
changeset
|
2327 return NGX_ERROR; |
c82b2e020b9f
SSL support in the uwsgi module.
Maxim Dounin <mdounin@mdounin.ru>
parents:
5451
diff
changeset
|
2328 } |
c82b2e020b9f
SSL support in the uwsgi module.
Maxim Dounin <mdounin@mdounin.ru>
parents:
5451
diff
changeset
|
2329 |
c82b2e020b9f
SSL support in the uwsgi module.
Maxim Dounin <mdounin@mdounin.ru>
parents:
5451
diff
changeset
|
2330 uwcf->upstream.ssl->log = cf->log; |
c82b2e020b9f
SSL support in the uwsgi module.
Maxim Dounin <mdounin@mdounin.ru>
parents:
5451
diff
changeset
|
2331 |
c82b2e020b9f
SSL support in the uwsgi module.
Maxim Dounin <mdounin@mdounin.ru>
parents:
5451
diff
changeset
|
2332 if (ngx_ssl_create(uwcf->upstream.ssl, uwcf->ssl_protocols, NULL) |
c82b2e020b9f
SSL support in the uwsgi module.
Maxim Dounin <mdounin@mdounin.ru>
parents:
5451
diff
changeset
|
2333 != NGX_OK) |
c82b2e020b9f
SSL support in the uwsgi module.
Maxim Dounin <mdounin@mdounin.ru>
parents:
5451
diff
changeset
|
2334 { |
c82b2e020b9f
SSL support in the uwsgi module.
Maxim Dounin <mdounin@mdounin.ru>
parents:
5451
diff
changeset
|
2335 return NGX_ERROR; |
c82b2e020b9f
SSL support in the uwsgi module.
Maxim Dounin <mdounin@mdounin.ru>
parents:
5451
diff
changeset
|
2336 } |
c82b2e020b9f
SSL support in the uwsgi module.
Maxim Dounin <mdounin@mdounin.ru>
parents:
5451
diff
changeset
|
2337 |
5659
3fb6615bb87f
Upstream: plugged potential memory leak on reload.
Maxim Dounin <mdounin@mdounin.ru>
parents:
5575
diff
changeset
|
2338 cln = ngx_pool_cleanup_add(cf->pool, 0); |
3fb6615bb87f
Upstream: plugged potential memory leak on reload.
Maxim Dounin <mdounin@mdounin.ru>
parents:
5575
diff
changeset
|
2339 if (cln == NULL) { |
3fb6615bb87f
Upstream: plugged potential memory leak on reload.
Maxim Dounin <mdounin@mdounin.ru>
parents:
5575
diff
changeset
|
2340 return NGX_ERROR; |
3fb6615bb87f
Upstream: plugged potential memory leak on reload.
Maxim Dounin <mdounin@mdounin.ru>
parents:
5575
diff
changeset
|
2341 } |
3fb6615bb87f
Upstream: plugged potential memory leak on reload.
Maxim Dounin <mdounin@mdounin.ru>
parents:
5575
diff
changeset
|
2342 |
3fb6615bb87f
Upstream: plugged potential memory leak on reload.
Maxim Dounin <mdounin@mdounin.ru>
parents:
5575
diff
changeset
|
2343 cln->handler = ngx_ssl_cleanup_ctx; |
3fb6615bb87f
Upstream: plugged potential memory leak on reload.
Maxim Dounin <mdounin@mdounin.ru>
parents:
5575
diff
changeset
|
2344 cln->data = uwcf->upstream.ssl; |
3fb6615bb87f
Upstream: plugged potential memory leak on reload.
Maxim Dounin <mdounin@mdounin.ru>
parents:
5575
diff
changeset
|
2345 |
5900
20d966ad5e89
Upstream: add "proxy_ssl_certificate" and friends.
Piotr Sikora <piotr@cloudflare.com>
parents:
5883
diff
changeset
|
2346 if (uwcf->ssl_certificate.len) { |
20d966ad5e89
Upstream: add "proxy_ssl_certificate" and friends.
Piotr Sikora <piotr@cloudflare.com>
parents:
5883
diff
changeset
|
2347 |
20d966ad5e89
Upstream: add "proxy_ssl_certificate" and friends.
Piotr Sikora <piotr@cloudflare.com>
parents:
5883
diff
changeset
|
2348 if (uwcf->ssl_certificate_key.len == 0) { |
20d966ad5e89
Upstream: add "proxy_ssl_certificate" and friends.
Piotr Sikora <piotr@cloudflare.com>
parents:
5883
diff
changeset
|
2349 ngx_log_error(NGX_LOG_EMERG, cf->log, 0, |
20d966ad5e89
Upstream: add "proxy_ssl_certificate" and friends.
Piotr Sikora <piotr@cloudflare.com>
parents:
5883
diff
changeset
|
2350 "no \"uwsgi_ssl_certificate_key\" is defined " |
20d966ad5e89
Upstream: add "proxy_ssl_certificate" and friends.
Piotr Sikora <piotr@cloudflare.com>
parents:
5883
diff
changeset
|
2351 "for certificate \"%V\"", &uwcf->ssl_certificate); |
20d966ad5e89
Upstream: add "proxy_ssl_certificate" and friends.
Piotr Sikora <piotr@cloudflare.com>
parents:
5883
diff
changeset
|
2352 return NGX_ERROR; |
20d966ad5e89
Upstream: add "proxy_ssl_certificate" and friends.
Piotr Sikora <piotr@cloudflare.com>
parents:
5883
diff
changeset
|
2353 } |
20d966ad5e89
Upstream: add "proxy_ssl_certificate" and friends.
Piotr Sikora <piotr@cloudflare.com>
parents:
5883
diff
changeset
|
2354 |
20d966ad5e89
Upstream: add "proxy_ssl_certificate" and friends.
Piotr Sikora <piotr@cloudflare.com>
parents:
5883
diff
changeset
|
2355 if (ngx_ssl_certificate(cf, uwcf->upstream.ssl, &uwcf->ssl_certificate, |
20d966ad5e89
Upstream: add "proxy_ssl_certificate" and friends.
Piotr Sikora <piotr@cloudflare.com>
parents:
5883
diff
changeset
|
2356 &uwcf->ssl_certificate_key, uwcf->ssl_passwords) |
20d966ad5e89
Upstream: add "proxy_ssl_certificate" and friends.
Piotr Sikora <piotr@cloudflare.com>
parents:
5883
diff
changeset
|
2357 != NGX_OK) |
20d966ad5e89
Upstream: add "proxy_ssl_certificate" and friends.
Piotr Sikora <piotr@cloudflare.com>
parents:
5883
diff
changeset
|
2358 { |
20d966ad5e89
Upstream: add "proxy_ssl_certificate" and friends.
Piotr Sikora <piotr@cloudflare.com>
parents:
5883
diff
changeset
|
2359 return NGX_ERROR; |
20d966ad5e89
Upstream: add "proxy_ssl_certificate" and friends.
Piotr Sikora <piotr@cloudflare.com>
parents:
5883
diff
changeset
|
2360 } |
20d966ad5e89
Upstream: add "proxy_ssl_certificate" and friends.
Piotr Sikora <piotr@cloudflare.com>
parents:
5883
diff
changeset
|
2361 } |
20d966ad5e89
Upstream: add "proxy_ssl_certificate" and friends.
Piotr Sikora <piotr@cloudflare.com>
parents:
5883
diff
changeset
|
2362 |
6591
04d8d1f85649
SSL: ngx_ssl_ciphers() to set list of ciphers.
Tim Taubert <tim@timtaubert.de>
parents:
6530
diff
changeset
|
2363 if (ngx_ssl_ciphers(cf, uwcf->upstream.ssl, &uwcf->ssl_ciphers, 0) |
04d8d1f85649
SSL: ngx_ssl_ciphers() to set list of ciphers.
Tim Taubert <tim@timtaubert.de>
parents:
6530
diff
changeset
|
2364 != NGX_OK) |
5457
c82b2e020b9f
SSL support in the uwsgi module.
Maxim Dounin <mdounin@mdounin.ru>
parents:
5451
diff
changeset
|
2365 { |
c82b2e020b9f
SSL support in the uwsgi module.
Maxim Dounin <mdounin@mdounin.ru>
parents:
5451
diff
changeset
|
2366 return NGX_ERROR; |
c82b2e020b9f
SSL support in the uwsgi module.
Maxim Dounin <mdounin@mdounin.ru>
parents:
5451
diff
changeset
|
2367 } |
c82b2e020b9f
SSL support in the uwsgi module.
Maxim Dounin <mdounin@mdounin.ru>
parents:
5451
diff
changeset
|
2368 |
5662
3cb79707516a
Upstream: uwsgi_ssl_name, uwsgi_ssl_verify, and so on.
Maxim Dounin <mdounin@mdounin.ru>
parents:
5659
diff
changeset
|
2369 if (uwcf->upstream.ssl_verify) { |
3cb79707516a
Upstream: uwsgi_ssl_name, uwsgi_ssl_verify, and so on.
Maxim Dounin <mdounin@mdounin.ru>
parents:
5659
diff
changeset
|
2370 if (uwcf->ssl_trusted_certificate.len == 0) { |
3cb79707516a
Upstream: uwsgi_ssl_name, uwsgi_ssl_verify, and so on.
Maxim Dounin <mdounin@mdounin.ru>
parents:
5659
diff
changeset
|
2371 ngx_log_error(NGX_LOG_EMERG, cf->log, 0, |
3cb79707516a
Upstream: uwsgi_ssl_name, uwsgi_ssl_verify, and so on.
Maxim Dounin <mdounin@mdounin.ru>
parents:
5659
diff
changeset
|
2372 "no uwsgi_ssl_trusted_certificate for uwsgi_ssl_verify"); |
3cb79707516a
Upstream: uwsgi_ssl_name, uwsgi_ssl_verify, and so on.
Maxim Dounin <mdounin@mdounin.ru>
parents:
5659
diff
changeset
|
2373 return NGX_ERROR; |
3cb79707516a
Upstream: uwsgi_ssl_name, uwsgi_ssl_verify, and so on.
Maxim Dounin <mdounin@mdounin.ru>
parents:
5659
diff
changeset
|
2374 } |
3cb79707516a
Upstream: uwsgi_ssl_name, uwsgi_ssl_verify, and so on.
Maxim Dounin <mdounin@mdounin.ru>
parents:
5659
diff
changeset
|
2375 |
3cb79707516a
Upstream: uwsgi_ssl_name, uwsgi_ssl_verify, and so on.
Maxim Dounin <mdounin@mdounin.ru>
parents:
5659
diff
changeset
|
2376 if (ngx_ssl_trusted_certificate(cf, uwcf->upstream.ssl, |
3cb79707516a
Upstream: uwsgi_ssl_name, uwsgi_ssl_verify, and so on.
Maxim Dounin <mdounin@mdounin.ru>
parents:
5659
diff
changeset
|
2377 &uwcf->ssl_trusted_certificate, |
3cb79707516a
Upstream: uwsgi_ssl_name, uwsgi_ssl_verify, and so on.
Maxim Dounin <mdounin@mdounin.ru>
parents:
5659
diff
changeset
|
2378 uwcf->ssl_verify_depth) |
3cb79707516a
Upstream: uwsgi_ssl_name, uwsgi_ssl_verify, and so on.
Maxim Dounin <mdounin@mdounin.ru>
parents:
5659
diff
changeset
|
2379 != NGX_OK) |
3cb79707516a
Upstream: uwsgi_ssl_name, uwsgi_ssl_verify, and so on.
Maxim Dounin <mdounin@mdounin.ru>
parents:
5659
diff
changeset
|
2380 { |
3cb79707516a
Upstream: uwsgi_ssl_name, uwsgi_ssl_verify, and so on.
Maxim Dounin <mdounin@mdounin.ru>
parents:
5659
diff
changeset
|
2381 return NGX_ERROR; |
3cb79707516a
Upstream: uwsgi_ssl_name, uwsgi_ssl_verify, and so on.
Maxim Dounin <mdounin@mdounin.ru>
parents:
5659
diff
changeset
|
2382 } |
3cb79707516a
Upstream: uwsgi_ssl_name, uwsgi_ssl_verify, and so on.
Maxim Dounin <mdounin@mdounin.ru>
parents:
5659
diff
changeset
|
2383 |
3cb79707516a
Upstream: uwsgi_ssl_name, uwsgi_ssl_verify, and so on.
Maxim Dounin <mdounin@mdounin.ru>
parents:
5659
diff
changeset
|
2384 if (ngx_ssl_crl(cf, uwcf->upstream.ssl, &uwcf->ssl_crl) != NGX_OK) { |
3cb79707516a
Upstream: uwsgi_ssl_name, uwsgi_ssl_verify, and so on.
Maxim Dounin <mdounin@mdounin.ru>
parents:
5659
diff
changeset
|
2385 return NGX_ERROR; |
3cb79707516a
Upstream: uwsgi_ssl_name, uwsgi_ssl_verify, and so on.
Maxim Dounin <mdounin@mdounin.ru>
parents:
5659
diff
changeset
|
2386 } |
3cb79707516a
Upstream: uwsgi_ssl_name, uwsgi_ssl_verify, and so on.
Maxim Dounin <mdounin@mdounin.ru>
parents:
5659
diff
changeset
|
2387 } |
3cb79707516a
Upstream: uwsgi_ssl_name, uwsgi_ssl_verify, and so on.
Maxim Dounin <mdounin@mdounin.ru>
parents:
5659
diff
changeset
|
2388 |
5457
c82b2e020b9f
SSL support in the uwsgi module.
Maxim Dounin <mdounin@mdounin.ru>
parents:
5451
diff
changeset
|
2389 return NGX_OK; |
c82b2e020b9f
SSL support in the uwsgi module.
Maxim Dounin <mdounin@mdounin.ru>
parents:
5451
diff
changeset
|
2390 } |
c82b2e020b9f
SSL support in the uwsgi module.
Maxim Dounin <mdounin@mdounin.ru>
parents:
5451
diff
changeset
|
2391 |
c82b2e020b9f
SSL support in the uwsgi module.
Maxim Dounin <mdounin@mdounin.ru>
parents:
5451
diff
changeset
|
2392 #endif |