Skip to content

Commit f8d1069

Browse files
committed
http: Ensure REQUEST_URI immutability
Previously, the REQUEST_URI within Unit could be modified, for example, during uri rewritting. We plan to make $request_uri immutable and pass constant REQUEST_URI to applications. Based on the new requirement, we remove `r->target` rewritting in the rewrite module. Closes: https://github.com/nginx/unit/issues/#916
1 parent 1ff64a7 commit f8d1069

File tree

1 file changed

+2
-27
lines changed

1 file changed

+2
-27
lines changed

src/nxt_http_rewrite.c

Lines changed: 2 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -28,9 +28,8 @@ nxt_http_rewrite_init(nxt_router_conf_t *rtcf, nxt_http_action_t *action,
2828
nxt_int_t
2929
nxt_http_rewrite(nxt_task_t *task, nxt_http_request_t *r)
3030
{
31-
u_char *p;
3231
nxt_int_t ret;
33-
nxt_str_t str, encoded_path, target;
32+
nxt_str_t str;
3433
nxt_router_conf_t *rtcf;
3534
nxt_http_action_t *action;
3635
nxt_http_request_parse_t rp;
@@ -72,30 +71,6 @@ nxt_http_rewrite(nxt_task_t *task, nxt_http_request_t *r)
7271
return NXT_ERROR;
7372
}
7473

75-
p = (rp.args.length > 0) ? rp.args.start - 1 : rp.target_end;
76-
77-
encoded_path.start = rp.target_start;
78-
encoded_path.length = p - encoded_path.start;
79-
80-
if (r->args->length == 0) {
81-
r->target = encoded_path;
82-
83-
} else {
84-
target.length = encoded_path.length + 1 + r->args->length;
85-
86-
target.start = nxt_mp_alloc(r->mem_pool, target.length);
87-
if (target.start == NULL) {
88-
return NXT_ERROR;
89-
}
90-
91-
p = nxt_cpymem(target.start, encoded_path.start, encoded_path.length);
92-
*p++ = '?';
93-
nxt_memcpy(p, r->args->start, r->args->length);
94-
95-
r->target = target;
96-
r->args->start = p;
97-
}
98-
9974
r->path = nxt_mp_alloc(r->mem_pool, sizeof(nxt_str_t));
10075
if (nxt_slow_path(r->path == NULL)) {
10176
return NXT_ERROR;
@@ -107,7 +82,7 @@ nxt_http_rewrite(nxt_task_t *task, nxt_http_request_t *r)
10782
r->quoted_target = rp.quoted_target;
10883

10984
if (nxt_slow_path(r->log_route)) {
110-
nxt_log(task, NXT_LOG_NOTICE, "URI rewritten to \"%V\"", &r->target);
85+
nxt_log(task, NXT_LOG_NOTICE, "URI rewritten to \"%V\"", r->path);
11186
}
11287

11388
return NXT_OK;

0 commit comments

Comments
 (0)