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.
diff --git a/src/stream/ngx_stream_proxy_module.c b/src/stream/ngx_stream_proxy_module.c
index 10ad7d2..ebbe027 100644
--- a/src/stream/ngx_stream_proxy_module.c
+++ b/src/stream/ngx_stream_proxy_module.c
@@ -524,6 +524,8 @@
     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 @@
                     return;
                 }
 
-                if (u->upstream_buf.start) {
+                if (u->connected) {
                     pc = u->peer.connection;
 
                     if (!c->read->delayed && !pc->read->delayed) {
@@ -901,7 +903,7 @@
         return;
     }
 
-    if (from_upstream && u->upstream_buf.start == NULL) {
+    if (from_upstream && !u->connected) {
         return;
     }
 
@@ -1000,7 +1002,7 @@
     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 --git a/src/stream/ngx_stream_upstream.h b/src/stream/ngx_stream_upstream.h
index fddc2b1..80520c2 100644
--- a/src/stream/ngx_stream_upstream.h
+++ b/src/stream/ngx_stream_upstream.h
@@ -87,8 +87,8 @@
 #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;