|
43 | 43 |
|
44 | 44 |
|
45 | 45 | typedef enum ngx_tnt_conf_states { |
46 | | - NGX_TNT_CONF_ON = 1, |
47 | | - NGX_TNT_CONF_OFF = 2, |
48 | | - NGX_TNT_CONF_PARSE_ARGS = 4, |
49 | | - NGX_TNT_CONF_UNESCAPE = 8, |
50 | | - NGX_TNT_CONF_PASS_BODY = 16, |
51 | | - NGX_TNT_CONF_PASS_HEADERS_OUT = 32, |
52 | | - NGX_TNT_CONF_PARSE_URLENCODED = 64, |
| 46 | + NGX_TNT_CONF_ON = 1, |
| 47 | + NGX_TNT_CONF_OFF = 2, |
| 48 | + NGX_TNT_CONF_PARSE_ARGS = 4, |
| 49 | + NGX_TNT_CONF_UNESCAPE = 8, |
| 50 | + NGX_TNT_CONF_PASS_BODY = 16, |
| 51 | + NGX_TNT_CONF_PASS_HEADERS_OUT = 32, |
| 52 | + NGX_TNT_CONF_PARSE_URLENCODED = 64, |
| 53 | + NGX_TNT_CONF_PASS_SUBREQUEST_URI = 128, |
53 | 54 | } ngx_tnt_conf_states_e; |
54 | 55 |
|
55 | 56 |
|
@@ -427,6 +428,7 @@ static ngx_conf_bitmask_t ngx_http_tnt_pass_http_request_masks[] = { |
427 | 428 | { ngx_string("pass_body"), NGX_TNT_CONF_PASS_BODY }, |
428 | 429 | { ngx_string("pass_headers_out"), NGX_TNT_CONF_PASS_HEADERS_OUT }, |
429 | 430 | { ngx_string("parse_urlencoded"), NGX_TNT_CONF_PARSE_URLENCODED }, |
| 431 | + { ngx_string("pass_subrequest_uri"), NGX_TNT_CONF_PASS_SUBREQUEST_URI }, |
430 | 432 | { ngx_null_string, 0 } |
431 | 433 | }; |
432 | 434 |
|
@@ -3166,13 +3168,18 @@ ngx_http_tnt_get_request_data(ngx_http_request_t *r, |
3166 | 3168 | goto oom_cant_encode; |
3167 | 3169 | } |
3168 | 3170 |
|
3169 | | - /** Encode raw uri */ |
| 3171 | + /** Encode uri: |
| 3172 | + * whether NGX_TNT_CONF_PASS_SUBREQUEST_URI is not set then raw uri |
| 3173 | + * will be chosen, otherwise preprocessed value will be used |
| 3174 | + */ |
3170 | 3175 | ++root_items; |
3171 | 3176 |
|
| 3177 | + ngx_str_t uri = tlcf->pass_http_request & NGX_TNT_CONF_PASS_SUBREQUEST_URI |
| 3178 | + ? r->uri : r->unparsed_uri; |
| 3179 | + |
3172 | 3180 | if (ngx_http_tnt_encode_str_map_item(r, tlcf, tp, |
3173 | 3181 | (u_char *) "uri", sizeof("uri") - 1, |
3174 | | - r->unparsed_uri.data, |
3175 | | - r->unparsed_uri.len) == NGX_ERROR) |
| 3182 | + uri.data, uri.len) == NGX_ERROR) |
3176 | 3183 | { |
3177 | 3184 | goto oom_cant_encode; |
3178 | 3185 | } |
|
0 commit comments