annotate src/http/modules/ngx_http_uwsgi_module.c @ 5885:5a042519bfe7

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