Mercurial > hg > nginx-quic
annotate src/http/modules/ngx_http_uwsgi_module.c @ 3565:1e86f0ac9a44
uwsgi_store
author | Igor Sysoev <igor@sysoev.ru> |
---|---|
date | Fri, 04 Jun 2010 11:31:01 +0000 |
parents | 3da009cc90f3 |
children | b81d44244cb1 |
rev | line source |
---|---|
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
1 |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
2 /* |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
3 * Copyright (C) Unbit S.a.s. 2009-2010 |
3544 | 4 * Copyright (C) 2008 Manlio Perillo (manlio.perillo@gmail.com) |
5 * Copyright (C) Igor Sysoev | |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
6 */ |
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 #include <ngx_config.h> |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
10 #include <ngx_core.h> |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
11 #include <ngx_http.h> |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
12 |
3543
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
13 |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
14 typedef struct { |
3543
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
15 ngx_http_upstream_conf_t upstream; |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
16 |
3543
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
17 ngx_array_t *flushes; |
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
18 ngx_array_t *params_len; |
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
19 ngx_array_t *params; |
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
20 ngx_array_t *params_source; |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
21 |
3543
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
22 ngx_array_t *uwsgi_lengths; |
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
23 ngx_array_t *uwsgi_values; |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
24 |
3550 | 25 ngx_str_t uwsgi_string; |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
26 |
3552
40eba0271b1d
improve uwsgi_modifierX processing:
Igor Sysoev <igor@sysoev.ru>
parents:
3551
diff
changeset
|
27 ngx_uint_t modifier1; |
40eba0271b1d
improve uwsgi_modifierX processing:
Igor Sysoev <igor@sysoev.ru>
parents:
3551
diff
changeset
|
28 ngx_uint_t modifier2; |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
29 } ngx_http_uwsgi_loc_conf_t; |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
30 |
3556 | 31 |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
32 typedef struct { |
3543
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
33 ngx_uint_t status; |
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
34 ngx_uint_t status_count; |
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
35 u_char *status_start; |
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
36 u_char *status_end; |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
37 } ngx_http_uwsgi_ctx_t; |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
38 |
3543
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
39 |
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
40 #define NGX_HTTP_UWSGI_PARSE_NO_HEADER 20 |
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
41 |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
42 |
3543
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
43 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
|
44 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
|
45 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
|
46 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
|
47 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
|
48 static ngx_int_t ngx_http_uwsgi_parse_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
|
49 ngx_http_uwsgi_ctx_t *ctx); |
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
50 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
|
51 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
|
52 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
|
53 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
|
54 ngx_int_t rc); |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
55 |
3543
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
56 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
|
57 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
|
58 void *child); |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
59 |
3543
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
60 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
|
61 void *conf); |
3565 | 62 static char *ngx_http_uwsgi_store(ngx_conf_t *cf, ngx_command_t *cmd, |
63 void *conf); | |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
64 |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
65 |
3552
40eba0271b1d
improve uwsgi_modifierX processing:
Igor Sysoev <igor@sysoev.ru>
parents:
3551
diff
changeset
|
66 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
|
67 ngx_conf_check_num_bounds, 0, 255 |
40eba0271b1d
improve uwsgi_modifierX processing:
Igor Sysoev <igor@sysoev.ru>
parents:
3551
diff
changeset
|
68 }; |
40eba0271b1d
improve uwsgi_modifierX processing:
Igor Sysoev <igor@sysoev.ru>
parents:
3551
diff
changeset
|
69 |
40eba0271b1d
improve uwsgi_modifierX processing:
Igor Sysoev <igor@sysoev.ru>
parents:
3551
diff
changeset
|
70 |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
71 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
|
72 { 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
|
73 { 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
|
74 { 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
|
75 { 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
|
76 { ngx_string("http_503"), NGX_HTTP_UPSTREAM_FT_HTTP_503 }, |
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
77 { 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
|
78 { 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
|
79 { 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
|
80 { ngx_null_string, 0 } |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
81 }; |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
82 |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
83 |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
84 static ngx_conf_bitmask_t ngx_http_uwsgi_ignore_headers_masks[] = { |
3543
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
85 { ngx_string("X-Accel-Redirect"), NGX_HTTP_UPSTREAM_IGN_XA_REDIRECT }, |
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
86 { ngx_string("X-Accel-Expires"), NGX_HTTP_UPSTREAM_IGN_XA_EXPIRES }, |
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
87 { ngx_string("Expires"), NGX_HTTP_UPSTREAM_IGN_EXPIRES }, |
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
88 { ngx_string("Cache-Control"), NGX_HTTP_UPSTREAM_IGN_CACHE_CONTROL }, |
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
89 { ngx_null_string, 0 } |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
90 }; |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
91 |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
92 |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
93 static ngx_command_t ngx_http_uwsgi_commands[] = { |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
94 |
3543
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
95 { ngx_string("uwsgi_pass"), |
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
96 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
|
97 ngx_http_uwsgi_pass, |
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
98 NGX_HTTP_LOC_CONF_OFFSET, |
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
99 0, |
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
100 NULL }, |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
101 |
3543
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
102 { ngx_string("uwsgi_modifier1"), |
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
103 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
|
104 ngx_conf_set_num_slot, |
3543
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
105 NGX_HTTP_LOC_CONF_OFFSET, |
3552
40eba0271b1d
improve uwsgi_modifierX processing:
Igor Sysoev <igor@sysoev.ru>
parents:
3551
diff
changeset
|
106 offsetof(ngx_http_uwsgi_loc_conf_t, modifier1), |
40eba0271b1d
improve uwsgi_modifierX processing:
Igor Sysoev <igor@sysoev.ru>
parents:
3551
diff
changeset
|
107 &ngx_http_uwsgi_modifier_bounds }, |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
108 |
3543
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
109 { ngx_string("uwsgi_modifier2"), |
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
110 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
|
111 ngx_conf_set_num_slot, |
3543
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
112 NGX_HTTP_LOC_CONF_OFFSET, |
3552
40eba0271b1d
improve uwsgi_modifierX processing:
Igor Sysoev <igor@sysoev.ru>
parents:
3551
diff
changeset
|
113 offsetof(ngx_http_uwsgi_loc_conf_t, modifier2), |
40eba0271b1d
improve uwsgi_modifierX processing:
Igor Sysoev <igor@sysoev.ru>
parents:
3551
diff
changeset
|
114 &ngx_http_uwsgi_modifier_bounds }, |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
115 |
3565 | 116 { ngx_string("uwsgi_store"), |
117 NGX_HTTP_MAIN_CONF|NGX_HTTP_SRV_CONF|NGX_HTTP_LOC_CONF|NGX_CONF_TAKE1, | |
118 ngx_http_uwsgi_store, | |
119 NGX_HTTP_LOC_CONF_OFFSET, | |
120 0, | |
121 NULL }, | |
122 | |
123 { ngx_string("uwsgi_store_access"), | |
124 NGX_HTTP_MAIN_CONF|NGX_HTTP_SRV_CONF|NGX_HTTP_LOC_CONF|NGX_CONF_TAKE123, | |
125 ngx_conf_set_access_slot, | |
126 NGX_HTTP_LOC_CONF_OFFSET, | |
127 offsetof(ngx_http_uwsgi_loc_conf_t, upstream.store_access), | |
128 NULL }, | |
129 | |
3543
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
130 { ngx_string("uwsgi_ignore_client_abort"), |
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
131 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
|
132 ngx_conf_set_flag_slot, |
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
133 NGX_HTTP_LOC_CONF_OFFSET, |
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
134 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
|
135 NULL }, |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
136 |
3543
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
137 { ngx_string("uwsgi_connect_timeout"), |
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
138 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
|
139 ngx_conf_set_msec_slot, |
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
140 NGX_HTTP_LOC_CONF_OFFSET, |
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
141 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
|
142 NULL }, |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
143 |
3543
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
144 { ngx_string("uwsgi_send_timeout"), |
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
145 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
|
146 ngx_conf_set_msec_slot, |
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
147 NGX_HTTP_LOC_CONF_OFFSET, |
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
148 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
|
149 NULL }, |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
150 |
3543
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
151 { ngx_string("uwsgi_buffer_size"), |
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
152 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
|
153 ngx_conf_set_size_slot, |
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
154 NGX_HTTP_LOC_CONF_OFFSET, |
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
155 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
|
156 NULL }, |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
157 |
3543
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
158 { ngx_string("uwsgi_pass_request_headers"), |
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
159 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
|
160 ngx_conf_set_flag_slot, |
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
161 NGX_HTTP_LOC_CONF_OFFSET, |
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
162 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
|
163 NULL }, |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
164 |
3543
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
165 { ngx_string("uwsgi_pass_request_body"), |
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
166 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
|
167 ngx_conf_set_flag_slot, |
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
168 NGX_HTTP_LOC_CONF_OFFSET, |
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
169 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
|
170 NULL }, |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
171 |
3543
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
172 { ngx_string("uwsgi_intercept_errors"), |
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
173 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
|
174 ngx_conf_set_flag_slot, |
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
175 NGX_HTTP_LOC_CONF_OFFSET, |
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
176 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
|
177 NULL }, |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
178 |
3543
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
179 { ngx_string("uwsgi_read_timeout"), |
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
180 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
|
181 ngx_conf_set_msec_slot, |
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
182 NGX_HTTP_LOC_CONF_OFFSET, |
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
183 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
|
184 NULL }, |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
185 |
3543
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
186 { ngx_string("uwsgi_buffers"), |
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
187 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
|
188 ngx_conf_set_bufs_slot, |
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
189 NGX_HTTP_LOC_CONF_OFFSET, |
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
190 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
|
191 NULL }, |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
192 |
3543
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
193 { ngx_string("uwsgi_busy_buffers_size"), |
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
194 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
|
195 ngx_conf_set_size_slot, |
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
196 NGX_HTTP_LOC_CONF_OFFSET, |
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
197 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
|
198 NULL }, |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
199 |
3543
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
200 { ngx_string("uwsgi_temp_path"), |
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
201 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
|
202 ngx_conf_set_path_slot, |
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
203 NGX_HTTP_LOC_CONF_OFFSET, |
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
204 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
|
205 NULL }, |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
206 |
3543
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
207 { 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
|
208 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
|
209 ngx_conf_set_size_slot, |
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
210 NGX_HTTP_LOC_CONF_OFFSET, |
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
211 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
|
212 NULL }, |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
213 |
3543
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
214 { 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
|
215 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
|
216 ngx_conf_set_size_slot, |
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
217 NGX_HTTP_LOC_CONF_OFFSET, |
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
218 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
|
219 NULL }, |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
220 |
3543
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
221 { ngx_string("uwsgi_next_upstream"), |
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
222 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
|
223 ngx_conf_set_bitmask_slot, |
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
224 NGX_HTTP_LOC_CONF_OFFSET, |
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
225 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
|
226 &ngx_http_uwsgi_next_upstream_masks }, |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
227 |
3543
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
228 { ngx_string("uwsgi_param"), |
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
229 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
|
230 ngx_conf_set_keyval_slot, |
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
231 NGX_HTTP_LOC_CONF_OFFSET, |
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
232 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
|
233 NULL }, |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
234 |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
235 { ngx_string("uwsgi_string"), |
3543
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
236 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
|
237 ngx_conf_set_str_slot, |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
238 NGX_HTTP_LOC_CONF_OFFSET, |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
239 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
|
240 NULL }, |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
241 |
3543
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
242 { ngx_string("uwsgi_pass_header"), |
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
243 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
|
244 ngx_conf_set_str_array_slot, |
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
245 NGX_HTTP_LOC_CONF_OFFSET, |
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
246 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
|
247 NULL }, |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
248 |
3543
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
249 { ngx_string("uwsgi_hide_header"), |
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
250 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
|
251 ngx_conf_set_str_array_slot, |
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
252 NGX_HTTP_LOC_CONF_OFFSET, |
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
253 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
|
254 NULL }, |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
255 |
3543
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
256 { ngx_string("uwsgi_ignore_headers"), |
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
257 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
|
258 ngx_conf_set_bitmask_slot, |
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
259 NGX_HTTP_LOC_CONF_OFFSET, |
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
260 offsetof(ngx_http_uwsgi_loc_conf_t, upstream.ignore_headers), |
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
261 &ngx_http_uwsgi_ignore_headers_masks }, |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
262 |
3543
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
263 ngx_null_command |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
264 }; |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
265 |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
266 |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
267 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
|
268 NULL, /* preconfiguration */ |
3543
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
269 NULL, /* postconfiguration */ |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
270 |
3543
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
271 NULL, /* create main configuration */ |
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
272 NULL, /* init main configuration */ |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
273 |
3543
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
274 NULL, /* create server configuration */ |
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
275 NULL, /* merge server configuration */ |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
276 |
3542
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
277 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
|
278 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
|
279 }; |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
280 |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
281 |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
282 ngx_module_t ngx_http_uwsgi_module = { |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
283 NGX_MODULE_V1, |
3543
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
284 &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
|
285 ngx_http_uwsgi_commands, /* module directives */ |
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
286 NGX_HTTP_MODULE, /* module type */ |
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
287 NULL, /* init master */ |
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
288 NULL, /* init module */ |
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
289 NULL, /* init process */ |
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
290 NULL, /* init thread */ |
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
291 NULL, /* exit thread */ |
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
292 NULL, /* exit process */ |
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
293 NULL, /* exit master */ |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
294 NGX_MODULE_V1_PADDING |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
295 }; |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
296 |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
297 |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
298 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
|
299 ngx_string("Status"), |
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
300 ngx_string("X-Accel-Expires"), |
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
301 ngx_string("X-Accel-Redirect"), |
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
302 ngx_string("X-Accel-Limit-Rate"), |
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
303 ngx_string("X-Accel-Buffering"), |
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
304 ngx_string("X-Accel-Charset"), |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
305 ngx_null_string |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
306 }; |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
307 |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
308 |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
309 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
|
310 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
|
311 }; |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
312 |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
313 |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
314 static ngx_int_t |
3543
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
315 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
|
316 { |
3543
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
317 ngx_int_t rc; |
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
318 ngx_http_upstream_t *u; |
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
319 ngx_http_uwsgi_ctx_t *ctx; |
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
320 ngx_http_uwsgi_loc_conf_t *uwcf; |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
321 |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
322 if (r->subrequest_in_memory) { |
3543
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
323 ngx_log_error(NGX_LOG_ALERT, r->connection->log, 0, |
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
324 "ngx_http_uwsgi_module does not support " |
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
325 "subrequests in memory"); |
3542
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
326 return NGX_HTTP_INTERNAL_SERVER_ERROR; |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
327 } |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
328 |
3543
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
329 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
|
330 return NGX_HTTP_INTERNAL_SERVER_ERROR; |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
331 } |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
332 |
3543
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
333 ctx = ngx_pcalloc(r->pool, sizeof(ngx_http_uwsgi_ctx_t)); |
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
334 if (ctx == NULL) { |
3542
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
335 return NGX_HTTP_INTERNAL_SERVER_ERROR; |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
336 } |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
337 |
3543
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
338 ngx_http_set_ctx(r, ctx, ngx_http_uwsgi_module); |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
339 |
3543
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
340 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
|
341 |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
342 if (uwcf->uwsgi_lengths) { |
3543
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
343 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
|
344 return NGX_HTTP_INTERNAL_SERVER_ERROR; |
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
345 } |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
346 } |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
347 |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
348 u = r->upstream; |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
349 |
3545
11c4f3a1e439
use ngx_str_set() and ngx_str_null()
Igor Sysoev <igor@sysoev.ru>
parents:
3544
diff
changeset
|
350 ngx_str_set(&u->schema, "uwsgi://"); |
3543
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
351 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
|
352 |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
353 u->conf = &uwcf->upstream; |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
354 |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
355 u->create_request = ngx_http_uwsgi_create_request; |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
356 u->reinit_request = ngx_http_uwsgi_reinit_request; |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
357 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
|
358 u->abort_request = ngx_http_uwsgi_abort_request; |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
359 u->finalize_request = ngx_http_uwsgi_finalize_request; |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
360 |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
361 u->buffering = 1; |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
362 |
3543
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
363 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
|
364 if (u->pipe == NULL) { |
3542
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
365 return NGX_HTTP_INTERNAL_SERVER_ERROR; |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
366 } |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
367 |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
368 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
|
369 u->pipe->input_ctx = r; |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
370 |
3543
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
371 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
|
372 |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
373 if (rc >= NGX_HTTP_SPECIAL_RESPONSE) { |
3542
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
374 return rc; |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
375 } |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
376 |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
377 return NGX_DONE; |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
378 } |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
379 |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
380 |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
381 static ngx_int_t |
3543
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
382 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
|
383 { |
3543
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
384 ngx_url_t u; |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
385 |
3543
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
386 ngx_memzero(&u, sizeof(ngx_url_t)); |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
387 |
3543
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
388 if (ngx_http_script_run(r, &u.url, uwcf->uwsgi_lengths->elts, 0, |
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
389 uwcf->uwsgi_values->elts) |
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
390 == NULL) |
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
391 { |
3542
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
392 return NGX_ERROR; |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
393 } |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
394 |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
395 u.no_resolve = 1; |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
396 |
3543
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
397 if (ngx_parse_url(r->pool, &u) != NGX_OK) { |
3542
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
398 if (u.err) { |
3543
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
399 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
|
400 "%s in upstream \"%V\"", u.err, &u.url); |
3542
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
401 } |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
402 |
3542
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
403 return NGX_ERROR; |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
404 } |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
405 |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
406 if (u.no_port) { |
3543
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
407 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
|
408 "no port in upstream \"%V\"", &u.url); |
3542
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
409 return NGX_ERROR; |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
410 } |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
411 |
3543
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
412 r->upstream->resolved = ngx_pcalloc(r->pool, |
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
413 sizeof(ngx_http_upstream_resolved_t)); |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
414 if (r->upstream->resolved == NULL) { |
3542
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
415 return NGX_ERROR; |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
416 } |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
417 |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
418 if (u.addrs && u.addrs[0].sockaddr) { |
3542
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
419 r->upstream->resolved->sockaddr = u.addrs[0].sockaddr; |
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
420 r->upstream->resolved->socklen = u.addrs[0].socklen; |
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
421 r->upstream->resolved->naddrs = 1; |
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
422 r->upstream->resolved->host = u.addrs[0].name; |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
423 |
3543
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
424 } else { |
3542
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
425 r->upstream->resolved->host = u.host; |
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
426 r->upstream->resolved->port = u.port; |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
427 } |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
428 |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
429 return NGX_OK; |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
430 } |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
431 |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
432 |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
433 static ngx_int_t |
3543
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
434 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
|
435 { |
3547
c2da61796410
remove useless copy: key name should be just copied before value length
Igor Sysoev <igor@sysoev.ru>
parents:
3546
diff
changeset
|
436 u_char ch; |
3546
3a9fca8cbdfc
simplify binary little endian length processing
Igor Sysoev <igor@sysoev.ru>
parents:
3545
diff
changeset
|
437 size_t key_len, val_len, len; |
3543
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
438 ngx_uint_t i, n; |
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
439 ngx_buf_t *b; |
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
440 ngx_chain_t *cl, *body; |
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
441 ngx_list_part_t *part; |
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
442 ngx_table_elt_t *header; |
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
443 ngx_http_script_code_pt code; |
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
444 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
|
445 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
|
446 ngx_http_script_len_code_pt lcode; |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
447 |
3546
3a9fca8cbdfc
simplify binary little endian length processing
Igor Sysoev <igor@sysoev.ru>
parents:
3545
diff
changeset
|
448 len = 0; |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
449 |
3543
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
450 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
|
451 |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
452 if (uwcf->params_len) { |
3543
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
453 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
|
454 |
3543
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
455 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
|
456 le.flushed = 1; |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
457 |
3542
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
458 le.ip = uwcf->params_len->elts; |
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
459 le.request = r; |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
460 |
3542
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
461 while (*(uintptr_t *) le.ip) { |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
462 |
3542
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
463 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
|
464 key_len = lcode(&le); |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
465 |
3542
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
466 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
|
467 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
|
468 } |
3543
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
469 le.ip += sizeof(uintptr_t); |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
470 |
3546
3a9fca8cbdfc
simplify binary little endian length processing
Igor Sysoev <igor@sysoev.ru>
parents:
3545
diff
changeset
|
471 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
|
472 } |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
473 } |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
474 |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
475 if (uwcf->upstream.pass_request_headers) { |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
476 |
3542
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
477 part = &r->headers_in.headers.part; |
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
478 header = part->elts; |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
479 |
3542
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
480 for (i = 0; /* void */ ; i++) { |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
481 |
3542
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
482 if (i >= part->nelts) { |
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
483 if (part->next == NULL) { |
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
484 break; |
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
485 } |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
486 |
3542
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
487 part = part->next; |
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
488 header = part->elts; |
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
489 i = 0; |
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
490 } |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
491 |
3546
3a9fca8cbdfc
simplify binary little endian length processing
Igor Sysoev <igor@sysoev.ru>
parents:
3545
diff
changeset
|
492 len += 2 + 5 + header[i].key.len + 2 + header[i].value.len; |
3542
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
493 } |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
494 } |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
495 |
3555
bc734cf061b0
improve uwsgi_string processing
Igor Sysoev <igor@sysoev.ru>
parents:
3554
diff
changeset
|
496 len += uwcf->uwsgi_string.len; |
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 #if 0 |
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
499 /* allow custom uwsgi packet */ |
3546
3a9fca8cbdfc
simplify binary little endian length processing
Igor Sysoev <igor@sysoev.ru>
parents:
3545
diff
changeset
|
500 if (len > 0 && len < 2) { |
3542
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
501 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
|
502 "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
|
503 return NGX_ERROR; |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
504 } |
3543
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
505 #endif |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
506 |
3546
3a9fca8cbdfc
simplify binary little endian length processing
Igor Sysoev <igor@sysoev.ru>
parents:
3545
diff
changeset
|
507 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
|
508 if (b == NULL) { |
3542
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
509 return NGX_ERROR; |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
510 } |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
511 |
3543
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
512 cl = ngx_alloc_chain_link(r->pool); |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
513 if (cl == NULL) { |
3542
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
514 return NGX_ERROR; |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
515 } |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
516 |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
517 cl->buf = b; |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
518 |
3552
40eba0271b1d
improve uwsgi_modifierX processing:
Igor Sysoev <igor@sysoev.ru>
parents:
3551
diff
changeset
|
519 *b->last++ = (u_char) uwcf->modifier1; |
3546
3a9fca8cbdfc
simplify binary little endian length processing
Igor Sysoev <igor@sysoev.ru>
parents:
3545
diff
changeset
|
520 *b->last++ = (u_char) (len & 0xff); |
3a9fca8cbdfc
simplify binary little endian length processing
Igor Sysoev <igor@sysoev.ru>
parents:
3545
diff
changeset
|
521 *b->last++ = (u_char) ((len >> 8) & 0xff); |
3552
40eba0271b1d
improve uwsgi_modifierX processing:
Igor Sysoev <igor@sysoev.ru>
parents:
3551
diff
changeset
|
522 *b->last++ = (u_char) uwcf->modifier2; |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
523 |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
524 if (uwcf->params_len) { |
3543
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
525 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
|
526 |
3542
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
527 e.ip = uwcf->params->elts; |
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
528 e.pos = b->last; |
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
529 e.request = r; |
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
530 e.flushed = 1; |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
531 |
3542
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
532 le.ip = uwcf->params_len->elts; |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
533 |
3542
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
534 while (*(uintptr_t *) le.ip) { |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
535 |
3542
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
536 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
|
537 key_len = (u_char) lcode (&le); |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
538 |
3543
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
539 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
|
540 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
|
541 } |
3543
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
542 le.ip += sizeof(uintptr_t); |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
543 |
3546
3a9fca8cbdfc
simplify binary little endian length processing
Igor Sysoev <igor@sysoev.ru>
parents:
3545
diff
changeset
|
544 *e.pos++ = (u_char) (key_len & 0xff); |
3a9fca8cbdfc
simplify binary little endian length processing
Igor Sysoev <igor@sysoev.ru>
parents:
3545
diff
changeset
|
545 *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
|
546 |
3547
c2da61796410
remove useless copy: key name should be just copied before value length
Igor Sysoev <igor@sysoev.ru>
parents:
3546
diff
changeset
|
547 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
|
548 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
|
549 |
c2da61796410
remove useless copy: key name should be just copied before value length
Igor Sysoev <igor@sysoev.ru>
parents:
3546
diff
changeset
|
550 *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
|
551 *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
|
552 |
3542
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
553 while (*(uintptr_t *) e.ip) { |
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
554 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
|
555 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
|
556 } |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
557 |
3543
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
558 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
|
559 |
3da009cc90f3
add uwsgi_param and client request headers debug logging
Igor Sysoev <igor@sysoev.ru>
parents:
3556
diff
changeset
|
560 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
|
561 "uwsgi param: \"%*s: %*s\"", |
3da009cc90f3
add uwsgi_param and client request headers debug logging
Igor Sysoev <igor@sysoev.ru>
parents:
3556
diff
changeset
|
562 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
|
563 val_len, e.pos - val_len); |
3542
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
564 } |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
565 |
3542
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
566 b->last = e.pos; |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
567 } |
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 if (uwcf->upstream.pass_request_headers) { |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
570 |
3542
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
571 part = &r->headers_in.headers.part; |
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
572 header = part->elts; |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
573 |
3542
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
574 for (i = 0; /* void */ ; i++) { |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
575 |
3542
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
576 if (i >= part->nelts) { |
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
577 if (part->next == NULL) { |
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
578 break; |
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
579 } |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
580 |
3542
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
581 part = part->next; |
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
582 header = part->elts; |
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
583 i = 0; |
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
584 } |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
585 |
3546
3a9fca8cbdfc
simplify binary little endian length processing
Igor Sysoev <igor@sysoev.ru>
parents:
3545
diff
changeset
|
586 key_len = 5 + header[i].key.len; |
3a9fca8cbdfc
simplify binary little endian length processing
Igor Sysoev <igor@sysoev.ru>
parents:
3545
diff
changeset
|
587 *b->last++ = (u_char) (key_len & 0xff); |
3a9fca8cbdfc
simplify binary little endian length processing
Igor Sysoev <igor@sysoev.ru>
parents:
3545
diff
changeset
|
588 *b->last++ = (u_char) ((key_len >> 8) & 0xff); |
3a9fca8cbdfc
simplify binary little endian length processing
Igor Sysoev <igor@sysoev.ru>
parents:
3545
diff
changeset
|
589 |
3543
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
590 b->last = ngx_cpymem(b->last, "HTTP_", 5); |
3542
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
591 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
|
592 ch = header[i].key.data[n]; |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
593 |
3542
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
594 if (ch >= 'a' && ch <= 'z') { |
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
595 ch &= ~0x20; |
3541
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 } else if (ch == '-') { |
3542
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
598 ch = '_'; |
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
599 } |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
600 |
3542
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
601 *b->last++ = ch; |
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
602 } |
3546
3a9fca8cbdfc
simplify binary little endian length processing
Igor Sysoev <igor@sysoev.ru>
parents:
3545
diff
changeset
|
603 |
3a9fca8cbdfc
simplify binary little endian length processing
Igor Sysoev <igor@sysoev.ru>
parents:
3545
diff
changeset
|
604 val_len = header[i].value.len; |
3a9fca8cbdfc
simplify binary little endian length processing
Igor Sysoev <igor@sysoev.ru>
parents:
3545
diff
changeset
|
605 *b->last++ = (u_char) (val_len & 0xff); |
3a9fca8cbdfc
simplify binary little endian length processing
Igor Sysoev <igor@sysoev.ru>
parents:
3545
diff
changeset
|
606 *b->last++ = (u_char) ((val_len >> 8) & 0xff); |
3a9fca8cbdfc
simplify binary little endian length processing
Igor Sysoev <igor@sysoev.ru>
parents:
3545
diff
changeset
|
607 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
|
608 |
3da009cc90f3
add uwsgi_param and client request headers debug logging
Igor Sysoev <igor@sysoev.ru>
parents:
3556
diff
changeset
|
609 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
|
610 "uwsgi param: \"%*s: %*s\"", |
3da009cc90f3
add uwsgi_param and client request headers debug logging
Igor Sysoev <igor@sysoev.ru>
parents:
3556
diff
changeset
|
611 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
|
612 val_len, b->last - val_len); |
3542
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
613 } |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
614 } |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
615 |
3555
bc734cf061b0
improve uwsgi_string processing
Igor Sysoev <igor@sysoev.ru>
parents:
3554
diff
changeset
|
616 b->last = ngx_copy(b->last, uwcf->uwsgi_string.data, |
bc734cf061b0
improve uwsgi_string processing
Igor Sysoev <igor@sysoev.ru>
parents:
3554
diff
changeset
|
617 uwcf->uwsgi_string.len); |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
618 |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
619 if (uwcf->upstream.pass_request_body) { |
3542
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
620 body = r->upstream->request_bufs; |
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
621 r->upstream->request_bufs = cl; |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
622 |
3542
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
623 while (body) { |
3543
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
624 b = ngx_alloc_buf(r->pool); |
3542
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
625 if (b == NULL) { |
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
626 return NGX_ERROR; |
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
627 } |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
628 |
3543
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
629 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
|
630 |
3543
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
631 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
|
632 if (cl->next == NULL) { |
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
633 return NGX_ERROR; |
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
634 } |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
635 |
3542
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
636 cl = cl->next; |
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
637 cl->buf = b; |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
638 |
3542
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
639 body = body->next; |
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
640 } |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
641 |
3542
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
642 b->flush = 1; |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
643 |
3543
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
644 } else { |
3542
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
645 r->upstream->request_bufs = cl; |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
646 } |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
647 |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
648 cl->next = NULL; |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
649 |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
650 return NGX_OK; |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
651 } |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
652 |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
653 |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
654 static ngx_int_t |
3543
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
655 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
|
656 { |
3543
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
657 ngx_http_uwsgi_ctx_t *ctx; |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
658 |
3543
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
659 ctx = 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
|
660 |
3543
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
661 if (ctx == NULL) { |
3542
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
662 return NGX_OK; |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
663 } |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
664 |
3543
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
665 ctx->status = 0; |
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
666 ctx->status_count = 0; |
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
667 ctx->status_start = NULL; |
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
668 ctx->status_end = NULL; |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
669 |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
670 r->upstream->process_header = ngx_http_uwsgi_process_status_line; |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
671 |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
672 return NGX_OK; |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
673 } |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
674 |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
675 static ngx_int_t |
3543
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
676 ngx_http_uwsgi_parse_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
|
677 ngx_http_uwsgi_ctx_t *ctx) |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
678 { |
3543
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
679 u_char ch; |
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
680 u_char *p; |
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
681 ngx_http_upstream_t *u; |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
682 enum { |
3542
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
683 sw_start = 0, |
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
684 sw_H, |
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
685 sw_HT, |
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
686 sw_HTT, |
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
687 sw_HTTP, |
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
688 sw_first_major_digit, |
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
689 sw_major_digit, |
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
690 sw_first_minor_digit, |
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
691 sw_minor_digit, |
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
692 sw_status, |
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
693 sw_space_after_status, |
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
694 sw_status_text, |
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
695 sw_almost_done |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
696 } state; |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
697 |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
698 u = r->upstream; |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
699 |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
700 state = r->state; |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
701 |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
702 for (p = u->buffer.pos; p < u->buffer.last; p++) { |
3542
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
703 ch = *p; |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
704 |
3542
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
705 switch (state) { |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
706 |
3543
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
707 /* "HTTP/" */ |
3542
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
708 case sw_start: |
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
709 switch (ch) { |
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
710 case 'H': |
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
711 state = sw_H; |
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
712 break; |
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
713 default: |
3543
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
714 return NGX_HTTP_UWSGI_PARSE_NO_HEADER; |
3542
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
715 } |
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
716 break; |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
717 |
3542
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
718 case sw_H: |
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
719 switch (ch) { |
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
720 case 'T': |
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
721 state = sw_HT; |
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
722 break; |
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
723 default: |
3543
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
724 return NGX_HTTP_UWSGI_PARSE_NO_HEADER; |
3542
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
725 } |
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
726 break; |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
727 |
3542
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
728 case sw_HT: |
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
729 switch (ch) { |
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
730 case 'T': |
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
731 state = sw_HTT; |
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
732 break; |
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
733 default: |
3543
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
734 return NGX_HTTP_UWSGI_PARSE_NO_HEADER; |
3542
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
735 } |
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
736 break; |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
737 |
3542
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
738 case sw_HTT: |
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
739 switch (ch) { |
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
740 case 'P': |
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
741 state = sw_HTTP; |
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
742 break; |
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
743 default: |
3543
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
744 return NGX_HTTP_UWSGI_PARSE_NO_HEADER; |
3542
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
745 } |
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
746 break; |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
747 |
3542
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
748 case sw_HTTP: |
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
749 switch (ch) { |
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
750 case '/': |
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
751 state = sw_first_major_digit; |
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
752 break; |
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
753 default: |
3543
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
754 return NGX_HTTP_UWSGI_PARSE_NO_HEADER; |
3542
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
755 } |
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
756 break; |
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 /* the first digit of major HTTP version */ |
3542
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
759 case sw_first_major_digit: |
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
760 if (ch < '1' || ch > '9') { |
3543
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
761 return NGX_HTTP_UWSGI_PARSE_NO_HEADER; |
3542
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
762 } |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
763 |
3542
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
764 state = sw_major_digit; |
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
765 break; |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
766 |
3543
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
767 /* the major HTTP version or dot */ |
3542
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
768 case sw_major_digit: |
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
769 if (ch == '.') { |
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
770 state = sw_first_minor_digit; |
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
771 break; |
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
772 } |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
773 |
3542
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
774 if (ch < '0' || ch > '9') { |
3543
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
775 return NGX_HTTP_UWSGI_PARSE_NO_HEADER; |
3542
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
776 } |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
777 |
3542
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
778 break; |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
779 |
3543
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
780 /* the first digit of minor HTTP version */ |
3542
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
781 case sw_first_minor_digit: |
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
782 if (ch < '0' || ch > '9') { |
3543
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
783 return NGX_HTTP_UWSGI_PARSE_NO_HEADER; |
3542
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
784 } |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
785 |
3542
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
786 state = sw_minor_digit; |
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
787 break; |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
788 |
3543
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
789 /* the minor HTTP version or the end of the request line */ |
3542
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
790 case sw_minor_digit: |
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
791 if (ch == ' ') { |
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
792 state = sw_status; |
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
793 break; |
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
794 } |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
795 |
3542
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
796 if (ch < '0' || ch > '9') { |
3543
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
797 return NGX_HTTP_UWSGI_PARSE_NO_HEADER; |
3542
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
798 } |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
799 |
3542
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
800 break; |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
801 |
3543
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
802 /* HTTP status code */ |
3542
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
803 case sw_status: |
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
804 if (ch == ' ') { |
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
805 break; |
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
806 } |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
807 |
3542
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
808 if (ch < '0' || ch > '9') { |
3543
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
809 return NGX_HTTP_UWSGI_PARSE_NO_HEADER; |
3542
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
810 } |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
811 |
3542
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
812 ctx->status = ctx->status * 10 + ch - '0'; |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
813 |
3542
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
814 if (++ctx->status_count == 3) { |
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
815 state = sw_space_after_status; |
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
816 ctx->status_start = p - 2; |
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
817 } |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
818 |
3542
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
819 break; |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
820 |
3543
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
821 /* space or end of line */ |
3542
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
822 case sw_space_after_status: |
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
823 switch (ch) { |
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
824 case ' ': |
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
825 state = sw_status_text; |
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
826 break; |
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
827 case '.': /* IIS may send 403.1, 403.2, etc */ |
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
828 state = sw_status_text; |
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
829 break; |
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
830 case CR: |
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
831 state = sw_almost_done; |
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
832 break; |
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
833 case LF: |
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
834 goto done; |
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
835 default: |
3543
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
836 return NGX_HTTP_UWSGI_PARSE_NO_HEADER; |
3542
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
837 } |
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
838 break; |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
839 |
3543
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
840 /* any text until end of line */ |
3542
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
841 case sw_status_text: |
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
842 switch (ch) { |
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
843 case CR: |
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
844 state = sw_almost_done; |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
845 |
3542
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
846 break; |
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
847 case LF: |
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
848 goto done; |
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
849 } |
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
850 break; |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
851 |
3543
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
852 /* end of status line */ |
3542
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
853 case sw_almost_done: |
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
854 ctx->status_end = p - 1; |
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
855 switch (ch) { |
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
856 case LF: |
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
857 goto done; |
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
858 default: |
3543
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
859 return NGX_HTTP_UWSGI_PARSE_NO_HEADER; |
3542
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
860 } |
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
861 } |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
862 } |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
863 |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
864 u->buffer.pos = p; |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
865 r->state = state; |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
866 |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
867 return NGX_AGAIN; |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
868 |
3543
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
869 done: |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
870 |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
871 u->buffer.pos = p + 1; |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
872 |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
873 if (ctx->status_end == NULL) { |
3542
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
874 ctx->status_end = p; |
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 |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
877 r->state = sw_start; |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
878 |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
879 return NGX_OK; |
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 |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
883 static ngx_int_t |
3543
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
884 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
|
885 { |
3543
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
886 ngx_int_t rc; |
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
887 ngx_http_upstream_t *u; |
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
888 ngx_http_uwsgi_ctx_t *ctx; |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
889 |
3543
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
890 ctx = 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
|
891 |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
892 if (ctx == NULL) { |
3542
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
893 return NGX_ERROR; |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
894 } |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
895 |
3543
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
896 rc = ngx_http_uwsgi_parse_status_line(r, ctx); |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
897 |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
898 if (rc == NGX_AGAIN) { |
3542
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
899 return rc; |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
900 } |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
901 |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
902 u = r->upstream; |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
903 |
3543
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
904 if (rc == NGX_HTTP_UWSGI_PARSE_NO_HEADER) { |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
905 |
3543
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
906 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
|
907 "upstream sent no valid HTTP/1.0 header"); |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
908 |
3542
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
909 r->http_version = NGX_HTTP_VERSION_9; |
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
910 u->headers_in.status_n = NGX_HTTP_OK; |
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
911 u->state->status = NGX_HTTP_OK; |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
912 |
3542
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
913 return NGX_OK; |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
914 } |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
915 |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
916 if (u->state) { |
3542
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
917 u->state->status = ctx->status; |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
918 } |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
919 |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
920 u->headers_in.status_n = ctx->status; |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
921 |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
922 u->headers_in.status_line.len = ctx->status_end - ctx->status_start; |
3543
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
923 u->headers_in.status_line.data = ngx_pnalloc(r->pool, |
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
924 u->headers_in.status_line.len); |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
925 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
|
926 return NGX_ERROR; |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
927 } |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
928 |
3543
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
929 ngx_memcpy(u->headers_in.status_line.data, ctx->status_start, |
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
930 u->headers_in.status_line.len); |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
931 |
3543
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
932 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
|
933 "http uwsgi status %ui \"%V\"", |
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
934 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
|
935 |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
936 u->process_header = ngx_http_uwsgi_process_header; |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
937 |
3543
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
938 return ngx_http_uwsgi_process_header(r); |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
939 } |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
940 |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
941 |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
942 static ngx_int_t |
3543
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
943 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
|
944 { |
3543
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
945 ngx_int_t rc; |
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
946 ngx_table_elt_t *h; |
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
947 ngx_http_upstream_header_t *hh; |
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
948 ngx_http_upstream_main_conf_t *umcf; |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
949 |
3543
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
950 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
|
951 |
3543
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
952 for ( ;; ) { |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
953 |
3543
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
954 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
|
955 |
3542
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
956 if (rc == NGX_OK) { |
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 /* a header line has been parsed successfully */ |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
959 |
3543
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
960 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
|
961 if (h == NULL) { |
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
962 return NGX_ERROR; |
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
963 } |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
964 |
3542
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
965 h->hash = r->header_hash; |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
966 |
3542
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
967 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
|
968 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
|
969 |
3543
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
970 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
|
971 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
|
972 + h->key.len); |
3542
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
973 if (h->key.data == NULL) { |
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
974 return NGX_ERROR; |
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
975 } |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
976 |
3542
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
977 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
|
978 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
|
979 |
3543
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
980 ngx_cpystrn(h->key.data, r->header_name_start, h->key.len + 1); |
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
981 ngx_cpystrn(h->value.data, r->header_start, h->value.len + 1); |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
982 |
3542
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
983 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
|
984 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
|
985 |
3543
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
986 } else { |
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
987 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
|
988 } |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
989 |
3543
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
990 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
|
991 h->lowcase_key, h->key.len); |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
992 |
3543
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
993 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
|
994 return NGX_ERROR; |
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
995 } |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
996 |
3543
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
997 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
|
998 "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
|
999 |
3542
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
1000 continue; |
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
1001 } |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
1002 |
3542
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
1003 if (rc == NGX_HTTP_PARSE_HEADER_DONE) { |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
1004 |
3542
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
1005 /* a whole header has been parsed successfully */ |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
1006 |
3543
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
1007 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
|
1008 "http uwsgi header done"); |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
1009 |
3542
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
1010 /* |
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
1011 * if no "Server" and "Date" in header line, |
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
1012 * then add the special empty headers |
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
1013 */ |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
1014 |
3542
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
1015 if (r->upstream->headers_in.server == NULL) { |
3543
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
1016 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
|
1017 if (h == NULL) { |
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
1018 return NGX_ERROR; |
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
1019 } |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
1020 |
3543
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
1021 h->hash = ngx_hash(ngx_hash(ngx_hash(ngx_hash( |
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
1022 ngx_hash ('s', 'e'), 'r'), 'v'), 'e'), 'r'); |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
1023 |
3545
11c4f3a1e439
use ngx_str_set() and ngx_str_null()
Igor Sysoev <igor@sysoev.ru>
parents:
3544
diff
changeset
|
1024 ngx_str_set(&h->key, "Server"); |
11c4f3a1e439
use ngx_str_set() and ngx_str_null()
Igor Sysoev <igor@sysoev.ru>
parents:
3544
diff
changeset
|
1025 ngx_str_null(&h->value); |
3542
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
1026 h->lowcase_key = (u_char *) "server"; |
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
1027 } |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
1028 |
3542
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
1029 if (r->upstream->headers_in.date == NULL) { |
3543
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
1030 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
|
1031 if (h == NULL) { |
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
1032 return NGX_ERROR; |
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
1033 } |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
1034 |
3543
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
1035 h->hash = ngx_hash(ngx_hash(ngx_hash('d', 'a'), 't'), 'e'); |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
1036 |
3545
11c4f3a1e439
use ngx_str_set() and ngx_str_null()
Igor Sysoev <igor@sysoev.ru>
parents:
3544
diff
changeset
|
1037 ngx_str_set(&h->key, "Date"); |
11c4f3a1e439
use ngx_str_set() and ngx_str_null()
Igor Sysoev <igor@sysoev.ru>
parents:
3544
diff
changeset
|
1038 ngx_str_null(&h->value); |
3542
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
1039 h->lowcase_key = (u_char *) "date"; |
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
1040 } |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
1041 |
3542
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
1042 return NGX_OK; |
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
1043 } |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
1044 |
3542
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
1045 if (rc == NGX_AGAIN) { |
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
1046 return NGX_AGAIN; |
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
1047 } |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
1048 |
3542
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
1049 /* 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
|
1050 |
3543
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
1051 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
|
1052 "upstream sent invalid header"); |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
1053 |
3542
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
1054 return NGX_HTTP_UPSTREAM_INVALID_HEADER; |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
1055 } |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
1056 } |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
1057 |
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 static void |
3543
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
1060 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
|
1061 { |
3543
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
1062 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
|
1063 "abort http uwsgi request"); |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
1064 |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
1065 return; |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
1066 } |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
1067 |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
1068 |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
1069 static void |
3543
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
1070 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
|
1071 { |
3543
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
1072 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
|
1073 "finalize http uwsgi request"); |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
1074 |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
1075 return; |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
1076 } |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
1077 |
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 static void * |
3543
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
1080 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
|
1081 { |
3543
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
1082 ngx_http_uwsgi_loc_conf_t *conf; |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
1083 |
3543
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
1084 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
|
1085 if (conf == NULL) { |
3542
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
1086 return NULL; |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
1087 } |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
1088 |
3552
40eba0271b1d
improve uwsgi_modifierX processing:
Igor Sysoev <igor@sysoev.ru>
parents:
3551
diff
changeset
|
1089 conf->modifier1 = NGX_CONF_UNSET_UINT; |
40eba0271b1d
improve uwsgi_modifierX processing:
Igor Sysoev <igor@sysoev.ru>
parents:
3551
diff
changeset
|
1090 conf->modifier2 = NGX_CONF_UNSET_UINT; |
40eba0271b1d
improve uwsgi_modifierX processing:
Igor Sysoev <igor@sysoev.ru>
parents:
3551
diff
changeset
|
1091 |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
1092 conf->upstream.store = NGX_CONF_UNSET; |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
1093 conf->upstream.store_access = NGX_CONF_UNSET_UINT; |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
1094 conf->upstream.buffering = NGX_CONF_UNSET; |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
1095 conf->upstream.ignore_client_abort = NGX_CONF_UNSET; |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
1096 |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
1097 conf->upstream.connect_timeout = NGX_CONF_UNSET_MSEC; |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
1098 conf->upstream.send_timeout = NGX_CONF_UNSET_MSEC; |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
1099 conf->upstream.read_timeout = NGX_CONF_UNSET_MSEC; |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
1100 |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
1101 conf->upstream.send_lowat = NGX_CONF_UNSET_SIZE; |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
1102 conf->upstream.buffer_size = NGX_CONF_UNSET_SIZE; |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
1103 |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
1104 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
|
1105 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
|
1106 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
|
1107 |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
1108 conf->upstream.pass_request_headers = NGX_CONF_UNSET; |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
1109 conf->upstream.pass_request_body = NGX_CONF_UNSET; |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
1110 |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
1111 conf->upstream.hide_headers = NGX_CONF_UNSET_PTR; |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
1112 conf->upstream.pass_headers = NGX_CONF_UNSET_PTR; |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
1113 |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
1114 conf->upstream.intercept_errors = NGX_CONF_UNSET; |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
1115 |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
1116 /* "uwsgi_cyclic_temp_file" is disabled */ |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
1117 conf->upstream.cyclic_temp_file = 0; |
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 return conf; |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
1120 } |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
1121 |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
1122 |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
1123 static char * |
3543
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
1124 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
|
1125 { |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
1126 ngx_http_uwsgi_loc_conf_t *prev = parent; |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
1127 ngx_http_uwsgi_loc_conf_t *conf = child; |
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 u_char *p; |
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
1130 size_t size; |
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
1131 uintptr_t *code; |
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
1132 ngx_uint_t i; |
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
1133 ngx_keyval_t *src; |
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
1134 ngx_hash_init_t hash; |
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
1135 ngx_http_script_compile_t sc; |
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
1136 ngx_http_script_copy_code_t *copy; |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
1137 |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
1138 if (conf->upstream.store != 0) { |
3543
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
1139 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
|
1140 |
3542
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
1141 if (conf->upstream.store_lengths == NULL) { |
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
1142 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
|
1143 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
|
1144 } |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
1145 } |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
1146 |
3543
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
1147 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
|
1148 prev->upstream.store_access, 0600); |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
1149 |
3543
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
1150 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
|
1151 prev->upstream.buffering, 1); |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
1152 |
3543
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
1153 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
|
1154 prev->upstream.ignore_client_abort, 0); |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
1155 |
3543
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
1156 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
|
1157 prev->upstream.connect_timeout, 60000); |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
1158 |
3543
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
1159 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
|
1160 prev->upstream.send_timeout, 60000); |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
1161 |
3543
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
1162 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
|
1163 prev->upstream.read_timeout, 60000); |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
1164 |
3543
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
1165 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
|
1166 prev->upstream.send_lowat, 0); |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
1167 |
3543
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
1168 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
|
1169 prev->upstream.buffer_size, |
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
1170 (size_t) ngx_pagesize); |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
1171 |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
1172 |
3543
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
1173 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
|
1174 8, ngx_pagesize); |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
1175 |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
1176 if (conf->upstream.bufs.num < 2) { |
3543
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
1177 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
|
1178 "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
|
1179 return NGX_CONF_ERROR; |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
1180 } |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
1181 |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
1182 |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
1183 size = conf->upstream.buffer_size; |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
1184 if (size < conf->upstream.bufs.size) { |
3542
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
1185 size = conf->upstream.bufs.size; |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
1186 } |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
1187 |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
1188 |
3543
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
1189 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
|
1190 prev->upstream.busy_buffers_size_conf, |
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
1191 NGX_CONF_UNSET_SIZE); |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
1192 |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
1193 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
|
1194 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
|
1195 } else { |
3542
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
1196 conf->upstream.busy_buffers_size = |
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
1197 conf->upstream.busy_buffers_size_conf; |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
1198 } |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
1199 |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
1200 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
|
1201 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
|
1202 "\"uwsgi_busy_buffers_size\" must be equal or bigger " |
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
1203 "than maximum of the value of \"uwsgi_buffer_size\" and " |
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
1204 "one of the \"uwsgi_buffers\""); |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
1205 |
3542
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
1206 return NGX_CONF_ERROR; |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
1207 } |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
1208 |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
1209 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
|
1210 > (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
|
1211 { |
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
1212 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
|
1213 "\"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
|
1214 "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
|
1215 |
3542
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
1216 return NGX_CONF_ERROR; |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
1217 } |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
1218 |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
1219 |
3543
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
1220 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
|
1221 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
|
1222 NGX_CONF_UNSET_SIZE); |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
1223 |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
1224 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
|
1225 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
|
1226 } else { |
3542
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
1227 conf->upstream.temp_file_write_size = |
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
1228 conf->upstream.temp_file_write_size_conf; |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
1229 } |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
1230 |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
1231 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
|
1232 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
|
1233 "\"uwsgi_temp_file_write_size\" must be equal or bigger than " |
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
1234 "maximum of the value of \"uwsgi_buffer_size\" and " |
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
1235 "one of the \"uwsgi_buffers\""); |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
1236 |
3542
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
1237 return NGX_CONF_ERROR; |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
1238 } |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
1239 |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
1240 |
3543
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
1241 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
|
1242 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
|
1243 NGX_CONF_UNSET_SIZE); |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
1244 |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
1245 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
|
1246 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
|
1247 } else { |
3542
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
1248 conf->upstream.max_temp_file_size = |
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
1249 conf->upstream.max_temp_file_size_conf; |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
1250 } |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
1251 |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
1252 if (conf->upstream.max_temp_file_size != 0 |
3542
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
1253 && conf->upstream.max_temp_file_size < size) { |
3543
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
1254 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
|
1255 "\"uwsgi_max_temp_file_size\" must be equal to zero to disable " |
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
1256 "the temporary files usage or must be equal or bigger than " |
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
1257 "maximum of the value of \"uwsgi_buffer_size\" and " |
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
1258 "one of the \"uwsgi_buffers\""); |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
1259 |
3542
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
1260 return NGX_CONF_ERROR; |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
1261 } |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
1262 |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
1263 |
3543
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
1264 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
|
1265 prev->upstream.ignore_headers, |
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
1266 NGX_CONF_BITMASK_SET); |
3541
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 |
3543
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
1269 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
|
1270 prev->upstream.next_upstream, |
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
1271 (NGX_CONF_BITMASK_SET |
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
1272 |NGX_HTTP_UPSTREAM_FT_ERROR |
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
1273 |NGX_HTTP_UPSTREAM_FT_TIMEOUT)); |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
1274 |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
1275 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
|
1276 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
|
1277 |NGX_HTTP_UPSTREAM_FT_OFF; |
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 |
3543
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
1280 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
|
1281 prev->upstream.temp_path, |
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
1282 &ngx_http_uwsgi_temp_path) |
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
1283 != NGX_OK) |
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
1284 { |
3542
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
1285 return NGX_CONF_ERROR; |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
1286 } |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
1287 |
3543
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
1288 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
|
1289 prev->upstream.pass_request_headers, 1); |
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
1290 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
|
1291 prev->upstream.pass_request_body, 1); |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
1292 |
3543
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
1293 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
|
1294 prev->upstream.intercept_errors, 0); |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
1295 |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
1296 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
|
1297 |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
1298 hash.max_size = 512; |
3543
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
1299 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
|
1300 hash.name = "uwsgi_hide_headers_hash"; |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
1301 |
3543
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
1302 if (ngx_http_upstream_hide_headers_hash(cf, &conf->upstream, |
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
1303 &prev->upstream, |
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
1304 ngx_http_uwsgi_hide_headers, &hash) |
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
1305 != NGX_OK) |
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
1306 { |
3542
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
1307 return NGX_CONF_ERROR; |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
1308 } |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
1309 |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
1310 if (conf->upstream.upstream == NULL) { |
3542
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
1311 conf->upstream.upstream = prev->upstream.upstream; |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
1312 } |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
1313 |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
1314 if (conf->uwsgi_lengths == NULL) { |
3542
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
1315 conf->uwsgi_lengths = prev->uwsgi_lengths; |
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
1316 conf->uwsgi_values = prev->uwsgi_values; |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
1317 } |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
1318 |
3552
40eba0271b1d
improve uwsgi_modifierX processing:
Igor Sysoev <igor@sysoev.ru>
parents:
3551
diff
changeset
|
1319 ngx_conf_merge_uint_value(conf->modifier1, prev->modifier1, 0); |
40eba0271b1d
improve uwsgi_modifierX processing:
Igor Sysoev <igor@sysoev.ru>
parents:
3551
diff
changeset
|
1320 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
|
1321 |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
1322 if (conf->params_source == NULL) { |
3542
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
1323 conf->flushes = prev->flushes; |
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
1324 conf->params_len = prev->params_len; |
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
1325 conf->params = prev->params; |
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
1326 conf->params_source = prev->params_source; |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
1327 |
3542
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
1328 if (conf->params_source == NULL) { |
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
1329 return NGX_CONF_OK; |
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
1330 } |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
1331 } |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
1332 |
3543
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
1333 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
|
1334 if (conf->params_len == NULL) { |
3542
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
1335 return NGX_CONF_ERROR; |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
1336 } |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
1337 |
3543
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
1338 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
|
1339 if (conf->params == NULL) { |
3542
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
1340 return NGX_CONF_ERROR; |
3541
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 |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
1343 src = conf->params_source->elts; |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
1344 for (i = 0; i < conf->params_source->nelts; i++) { |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
1345 |
3548
fc7541a6959d
fix the previous commit when value is static string: remove the special
Igor Sysoev <igor@sysoev.ru>
parents:
3547
diff
changeset
|
1346 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
|
1347 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
|
1348 if (copy == NULL) { |
fc7541a6959d
fix the previous commit when value is static string: remove the special
Igor Sysoev <igor@sysoev.ru>
parents:
3547
diff
changeset
|
1349 return NGX_CONF_ERROR; |
fc7541a6959d
fix the previous commit when value is static string: remove the special
Igor Sysoev <igor@sysoev.ru>
parents:
3547
diff
changeset
|
1350 } |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
1351 |
3548
fc7541a6959d
fix the previous commit when value is static string: remove the special
Igor Sysoev <igor@sysoev.ru>
parents:
3547
diff
changeset
|
1352 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
|
1353 copy->len = src[i].key.len; |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
1354 |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
1355 |
3548
fc7541a6959d
fix the previous commit when value is static string: remove the special
Igor Sysoev <igor@sysoev.ru>
parents:
3547
diff
changeset
|
1356 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
|
1357 + 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
|
1358 & ~(sizeof(uintptr_t) - 1); |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
1359 |
3548
fc7541a6959d
fix the previous commit when value is static string: remove the special
Igor Sysoev <igor@sysoev.ru>
parents:
3547
diff
changeset
|
1360 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
|
1361 if (copy == NULL) { |
fc7541a6959d
fix the previous commit when value is static string: remove the special
Igor Sysoev <igor@sysoev.ru>
parents:
3547
diff
changeset
|
1362 return NGX_CONF_ERROR; |
fc7541a6959d
fix the previous commit when value is static string: remove the special
Igor Sysoev <igor@sysoev.ru>
parents:
3547
diff
changeset
|
1363 } |
3543
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
1364 |
3548
fc7541a6959d
fix the previous commit when value is static string: remove the special
Igor Sysoev <igor@sysoev.ru>
parents:
3547
diff
changeset
|
1365 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
|
1366 copy->len = src[i].key.len; |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
1367 |
3548
fc7541a6959d
fix the previous commit when value is static string: remove the special
Igor Sysoev <igor@sysoev.ru>
parents:
3547
diff
changeset
|
1368 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
|
1369 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
|
1370 |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
1371 |
3548
fc7541a6959d
fix the previous commit when value is static string: remove the special
Igor Sysoev <igor@sysoev.ru>
parents:
3547
diff
changeset
|
1372 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
|
1373 |
3548
fc7541a6959d
fix the previous commit when value is static string: remove the special
Igor Sysoev <igor@sysoev.ru>
parents:
3547
diff
changeset
|
1374 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
|
1375 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
|
1376 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
|
1377 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
|
1378 sc.values = &conf->params; |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
1379 |
3548
fc7541a6959d
fix the previous commit when value is static string: remove the special
Igor Sysoev <igor@sysoev.ru>
parents:
3547
diff
changeset
|
1380 if (ngx_http_script_compile(&sc) != NGX_OK) { |
fc7541a6959d
fix the previous commit when value is static string: remove the special
Igor Sysoev <igor@sysoev.ru>
parents:
3547
diff
changeset
|
1381 return NGX_CONF_ERROR; |
3542
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
1382 } |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
1383 |
3543
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
1384 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
|
1385 if (code == NULL) { |
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
1386 return NGX_CONF_ERROR; |
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
1387 } |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
1388 |
3542
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
1389 *code = (uintptr_t) NULL; |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
1390 |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
1391 |
3543
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
1392 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
|
1393 if (code == NULL) { |
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
1394 return NGX_CONF_ERROR; |
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
1395 } |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
1396 |
3542
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
1397 *code = (uintptr_t) NULL; |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
1398 } |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
1399 |
3543
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
1400 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
|
1401 if (code == NULL) { |
3542
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
1402 return NGX_CONF_ERROR; |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
1403 } |
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 *code = (uintptr_t) NULL; |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
1406 |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
1407 return NGX_CONF_OK; |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
1408 } |
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 static char * |
3543
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
1412 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
|
1413 { |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
1414 ngx_http_uwsgi_loc_conf_t *uwcf = conf; |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
1415 |
3543
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
1416 ngx_url_t u; |
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
1417 ngx_str_t *value, *url; |
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
1418 ngx_uint_t n; |
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
1419 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
|
1420 ngx_http_script_compile_t sc; |
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 (uwcf->upstream.upstream || uwcf->uwsgi_lengths) { |
3542
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
1423 return "is duplicate"; |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
1424 } |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
1425 |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
1426 clcf = ngx_http_conf_get_module_loc_conf (cf, ngx_http_core_module); |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
1427 clcf->handler = ngx_http_uwsgi_handler; |
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 value = cf->args->elts; |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
1430 |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
1431 url = &value[1]; |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
1432 |
3543
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
1433 n = ngx_http_script_variables_count(url); |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
1434 |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
1435 if (n) { |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
1436 |
3543
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
1437 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
|
1438 |
3542
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
1439 sc.cf = cf; |
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
1440 sc.source = url; |
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
1441 sc.lengths = &uwcf->uwsgi_lengths; |
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
1442 sc.values = &uwcf->uwsgi_values; |
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
1443 sc.variables = n; |
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
1444 sc.complete_lengths = 1; |
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
1445 sc.complete_values = 1; |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
1446 |
3543
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
1447 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
|
1448 return NGX_CONF_ERROR; |
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
1449 } |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
1450 |
3542
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
1451 return NGX_CONF_OK; |
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 |
3543
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
1454 ngx_memzero(&u, sizeof(ngx_url_t)); |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
1455 |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
1456 u.url = value[1]; |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
1457 u.no_resolve = 1; |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
1458 |
3543
e132566a942e
fix style, some names, and building by MSVC8
Igor Sysoev <igor@sysoev.ru>
parents:
3542
diff
changeset
|
1459 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
|
1460 if (uwcf->upstream.upstream == NULL) { |
3542
9bf51b3fc1c1
style fix: remove tabs and trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
3541
diff
changeset
|
1461 return NGX_CONF_ERROR; |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
1462 } |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
1463 |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
1464 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
|
1465 clcf->auto_redirect = 1; |
3541
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
1466 } |
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 return NGX_CONF_OK; |
21452748d165
import original ngx_http_uwsgi_module version
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
1469 } |
3565 | 1470 |
1471 | |
1472 static char * | |
1473 ngx_http_uwsgi_store(ngx_conf_t *cf, ngx_command_t *cmd, void *conf) | |
1474 { | |
1475 ngx_http_uwsgi_loc_conf_t *uwcf = conf; | |
1476 | |
1477 ngx_str_t *value; | |
1478 ngx_http_script_compile_t sc; | |
1479 | |
1480 if (uwcf->upstream.store != NGX_CONF_UNSET || uwcf->upstream.store_lengths) | |
1481 { | |
1482 return "is duplicate"; | |
1483 } | |
1484 | |
1485 value = cf->args->elts; | |
1486 | |
1487 if (ngx_strcmp(value[1].data, "on") == 0) { | |
1488 uwcf->upstream.store = 1; | |
1489 return NGX_CONF_OK; | |
1490 } | |
1491 | |
1492 if (ngx_strcmp(value[1].data, "off") == 0) { | |
1493 uwcf->upstream.store = 0; | |
1494 return NGX_CONF_OK; | |
1495 } | |
1496 | |
1497 /* include the terminating '\0' into script */ | |
1498 value[1].len++; | |
1499 | |
1500 ngx_memzero(&sc, sizeof(ngx_http_script_compile_t)); | |
1501 | |
1502 sc.cf = cf; | |
1503 sc.source = &value[1]; | |
1504 sc.lengths = &uwcf->upstream.store_lengths; | |
1505 sc.values = &uwcf->upstream.store_values; | |
1506 sc.variables = ngx_http_script_variables_count(&value[1]);; | |
1507 sc.complete_lengths = 1; | |
1508 sc.complete_values = 1; | |
1509 | |
1510 if (ngx_http_script_compile(&sc) != NGX_OK) { | |
1511 return NGX_CONF_ERROR; | |
1512 } | |
1513 | |
1514 return NGX_CONF_OK; | |
1515 } |