Mercurial > hg > nginx
diff src/stream/ngx_stream_variables.c @ 7590:06b01840bd42
Core: moved PROXY protocol fields out of ngx_connection_t.
Now a new structure ngx_proxy_protocol_t holds these fields. This allows
to add more PROXY protocol fields in the future without modifying the
connection structure.
author | Roman Arutyunyan <arut@nginx.com> |
---|---|
date | Mon, 21 Oct 2019 18:06:19 +0300 |
parents | 0b1eb40de6da |
children | 89adf49fe76a |
line wrap: on
line diff
--- a/src/stream/ngx_stream_variables.c Thu Oct 24 13:47:28 2019 +0300 +++ b/src/stream/ngx_stream_variables.c Mon Oct 21 18:06:19 2019 +0300 @@ -557,11 +557,19 @@ 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 @@ 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 @@ 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;