summaryrefslogtreecommitdiffhomepage
path: root/src/stream
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--src/stream/ngx_stream_realip_module.c8
-rw-r--r--src/stream/ngx_stream_variables.c23
2 files changed, 23 insertions, 8 deletions
diff --git a/src/stream/ngx_stream_realip_module.c b/src/stream/ngx_stream_realip_module.c
index 57b1ac21e..603f5973b 100644
--- a/src/stream/ngx_stream_realip_module.c
+++ b/src/stream/ngx_stream_realip_module.c
@@ -108,7 +108,7 @@ ngx_stream_realip_handler(ngx_stream_session_t *s)
c = s->connection;
- if (c->proxy_protocol_addr.len == 0) {
+ if (c->proxy_protocol == NULL) {
return NGX_DECLINED;
}
@@ -116,14 +116,14 @@ ngx_stream_realip_handler(ngx_stream_session_t *s)
return NGX_DECLINED;
}
- if (ngx_parse_addr(c->pool, &addr, c->proxy_protocol_addr.data,
- c->proxy_protocol_addr.len)
+ if (ngx_parse_addr(c->pool, &addr, c->proxy_protocol->src_addr.data,
+ c->proxy_protocol->src_addr.len)
!= NGX_OK)
{
return NGX_DECLINED;
}
- ngx_inet_set_port(addr.sockaddr, c->proxy_protocol_port);
+ ngx_inet_set_port(addr.sockaddr, c->proxy_protocol->src_port);
return ngx_stream_realip_set_addr(s, &addr);
}
diff --git a/src/stream/ngx_stream_variables.c b/src/stream/ngx_stream_variables.c
index d1526a96a..995e23a4b 100644
--- a/src/stream/ngx_stream_variables.c
+++ b/src/stream/ngx_stream_variables.c
@@ -557,11 +557,19 @@ static ngx_int_t
ngx_stream_variable_proxy_protocol_addr(ngx_stream_session_t *s,
ngx_stream_variable_value_t *v, uintptr_t data)
{
- v->len = s->connection->proxy_protocol_addr.len;
+ ngx_proxy_protocol_t *pp;
+
+ pp = s->connection->proxy_protocol;
+ if (pp == NULL) {
+ v->not_found = 1;
+ return NGX_OK;
+ }
+
+ v->len = pp->src_addr.len;
v->valid = 1;
v->no_cacheable = 0;
v->not_found = 0;
- v->data = s->connection->proxy_protocol_addr.data;
+ v->data = pp->src_addr.data;
return NGX_OK;
}
@@ -571,7 +579,14 @@ static ngx_int_t
ngx_stream_variable_proxy_protocol_port(ngx_stream_session_t *s,
ngx_stream_variable_value_t *v, uintptr_t data)
{
- ngx_uint_t port;
+ ngx_uint_t port;
+ ngx_proxy_protocol_t *pp;
+
+ pp = s->connection->proxy_protocol;
+ if (pp == NULL) {
+ v->not_found = 1;
+ return NGX_OK;
+ }
v->len = 0;
v->valid = 1;
@@ -583,7 +598,7 @@ ngx_stream_variable_proxy_protocol_port(ngx_stream_session_t *s,
return NGX_ERROR;
}
- port = s->connection->proxy_protocol_port;
+ port = pp->src_port;
if (port > 0 && port < 65536) {
v->len = ngx_sprintf(v->data, "%ui", port) - v->data;