[nginx] Stream: upstream "connected" flag.

Roman Arutyunyan arut at nginx.com
Thu Jun 25 09:40:13 UTC 2015


details:   http://hg.nginx.org/nginx/rev/6345822f0abb
branches:  
changeset: 6202:6345822f0abb
user:      Roman Arutyunyan <arut at nginx.com>
date:      Thu Jun 25 12:36:52 2015 +0300
description:
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.

diffstat:

 src/stream/ngx_stream_proxy_module.c |  8 +++++---
 src/stream/ngx_stream_upstream.h     |  4 ++--
 2 files changed, 7 insertions(+), 5 deletions(-)

diffs (53 lines):

diff -r 24488e6db782 -r 6345822f0abb src/stream/ngx_stream_proxy_module.c
--- a/src/stream/ngx_stream_proxy_module.c	Tue Jun 23 20:17:48 2015 +0300
+++ b/src/stream/ngx_stream_proxy_module.c	Thu Jun 25 12:36:52 2015 +0300
@@ -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);
 
diff -r 24488e6db782 -r 6345822f0abb src/stream/ngx_stream_upstream.h
--- a/src/stream/ngx_stream_upstream.h	Tue Jun 23 20:17:48 2015 +0300
+++ b/src/stream/ngx_stream_upstream.h	Thu Jun 25 12:36:52 2015 +0300
@@ -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;
 
 



More information about the nginx-devel mailing list