mirror of
https://github.com/nginx/nginx.git
synced 2025-02-25 18:55:26 -06:00
ngx_parse_url() saves port text, this allows to use it in proxy host header
This commit is contained in:
parent
57bb349844
commit
00e0377488
@ -417,6 +417,9 @@ ngx_parse_url(ngx_pool_t *pool, ngx_url_t *u)
|
||||
return NGX_ERROR;
|
||||
}
|
||||
|
||||
u->port_text.len = port_len;
|
||||
u->port_text.data = port_start;
|
||||
|
||||
} else {
|
||||
port = ngx_atoi(p, len);
|
||||
|
||||
|
@ -35,6 +35,7 @@ typedef struct {
|
||||
|
||||
ngx_str_t url;
|
||||
ngx_str_t host;
|
||||
ngx_str_t port_text;
|
||||
ngx_str_t uri;
|
||||
|
||||
in_port_t port;
|
||||
|
@ -2645,8 +2645,6 @@ static ngx_int_t
|
||||
ngx_http_proxy_set_vars(ngx_pool_t *pool, ngx_url_t *u,
|
||||
ngx_http_proxy_vars_t *v)
|
||||
{
|
||||
u_char *p;
|
||||
|
||||
if (!u->unix_socket) {
|
||||
if (u->no_port || u->port == u->default_port) {
|
||||
v->host_header = u->host;
|
||||
@ -2661,16 +2659,9 @@ ngx_http_proxy_set_vars(ngx_pool_t *pool, ngx_url_t *u,
|
||||
}
|
||||
|
||||
} else {
|
||||
p = ngx_palloc(pool, u->host.len + sizeof(":65536") - 1);
|
||||
if (p == NULL) {
|
||||
return NGX_ERROR;
|
||||
}
|
||||
|
||||
v->host_header.len = ngx_sprintf(p, "%V:%d", &u->host, u->port) - p;
|
||||
v->host_header.data = p;
|
||||
|
||||
v->port.len = v->host_header.len - u->host.len - 1;
|
||||
v->port.data = p + u->host.len + 1;
|
||||
v->host_header.len = u->host.len + 1 + u->port_text.len;
|
||||
v->host_header.data = u->host.data;
|
||||
v->port = u->port_text;
|
||||
}
|
||||
|
||||
} else {
|
||||
|
Loading…
Reference in New Issue
Block a user