aboutsummaryrefslogtreecommitdiff
path: root/src/http/modules/ngx_http_proxy_module.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/http/modules/ngx_http_proxy_module.c')
-rw-r--r--src/http/modules/ngx_http_proxy_module.c16
1 files changed, 12 insertions, 4 deletions
diff --git a/src/http/modules/ngx_http_proxy_module.c b/src/http/modules/ngx_http_proxy_module.c
index 2cf009bd9..2bf58ab68 100644
--- a/src/http/modules/ngx_http_proxy_module.c
+++ b/src/http/modules/ngx_http_proxy_module.c
@@ -614,10 +614,18 @@ ngx_http_proxy_eval(ngx_http_request_t *r, ngx_http_proxy_ctx_t *ctx,
return NGX_ERROR;
}
- r->upstream->resolved->host = u.host;
- r->upstream->resolved->port = (in_port_t) (u.no_port ? u.default_port:
- u.port);
- r->upstream->resolved->no_port = u.no_port;
+ if (u.addrs[0].sockaddr) {
+ r->upstream->resolved->sockaddr = u.addrs[0].sockaddr;
+ r->upstream->resolved->socklen = u.addrs[0].socklen;
+ r->upstream->resolved->naddrs = 1;
+ r->upstream->resolved->host = u.addrs[0].name;
+
+ } else {
+ r->upstream->resolved->host = u.host;
+ r->upstream->resolved->port = (in_port_t) (u.no_port ? u.default_port:
+ u.port);
+ r->upstream->resolved->no_port = u.no_port;
+ }
return NGX_OK;
}