Mercurial > hg > nginx-quic
changeset 6202:6345822f0abb
Stream: upstream "connected" flag.
Once upstream is connected, the upstream buffer is allocated. Previously, the
proxy module used the buffer allocation status to check if upstream is
connected. Now it's enough to check the flag.
author | Roman Arutyunyan <arut@nginx.com> |
---|---|
date | Thu, 25 Jun 2015 12:36:52 +0300 |
parents | 24488e6db782 |
children | fdfdcad62875 |
files | src/stream/ngx_stream_proxy_module.c src/stream/ngx_stream_upstream.h |
diffstat | 2 files changed, 7 insertions(+), 5 deletions(-) [+] |
line wrap: on
line diff
--- a/src/stream/ngx_stream_proxy_module.c +++ b/src/stream/ngx_stream_proxy_module.c @@ -524,6 +524,8 @@ ngx_stream_proxy_init_upstream(ngx_strea u->upstream_buf.pos = p; u->upstream_buf.last = p; + u->connected = 1; + pc->read->handler = ngx_stream_proxy_upstream_handler; pc->write->handler = ngx_stream_proxy_upstream_handler; @@ -870,7 +872,7 @@ ngx_stream_proxy_process_connection(ngx_ return; } - if (u->upstream_buf.start) { + if (u->connected) { pc = u->peer.connection; if (!c->read->delayed && !pc->read->delayed) { @@ -901,7 +903,7 @@ ngx_stream_proxy_process_connection(ngx_ return; } - if (from_upstream && u->upstream_buf.start == NULL) { + if (from_upstream && !u->connected) { return; } @@ -1000,7 +1002,7 @@ ngx_stream_proxy_process(ngx_stream_sess u = s->upstream; c = s->connection; - pc = u->upstream_buf.start ? u->peer.connection : NULL; + pc = u->connected ? u->peer.connection : NULL; pscf = ngx_stream_get_module_srv_conf(s, ngx_stream_proxy_module);
--- a/src/stream/ngx_stream_upstream.h +++ b/src/stream/ngx_stream_upstream.h @@ -87,8 +87,8 @@ typedef struct { #if (NGX_STREAM_SSL) ngx_str_t ssl_name; #endif - ngx_uint_t proxy_protocol; - /* unsigned proxy_protocol:1; */ + unsigned connected:1; + unsigned proxy_protocol:1; } ngx_stream_upstream_t;