mirror of
https://github.com/nginx/nginx.git
synced 2024-12-02 11:49:01 +08:00
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.
This commit is contained in:
parent
74942045d5
commit
f81ae4e392
@ -524,6 +524,8 @@ ngx_stream_proxy_init_upstream(ngx_stream_session_t *s)
|
|||||||
u->upstream_buf.pos = p;
|
u->upstream_buf.pos = p;
|
||||||
u->upstream_buf.last = p;
|
u->upstream_buf.last = p;
|
||||||
|
|
||||||
|
u->connected = 1;
|
||||||
|
|
||||||
pc->read->handler = ngx_stream_proxy_upstream_handler;
|
pc->read->handler = ngx_stream_proxy_upstream_handler;
|
||||||
pc->write->handler = ngx_stream_proxy_upstream_handler;
|
pc->write->handler = ngx_stream_proxy_upstream_handler;
|
||||||
|
|
||||||
@ -870,7 +872,7 @@ ngx_stream_proxy_process_connection(ngx_event_t *ev, ngx_uint_t from_upstream)
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (u->upstream_buf.start) {
|
if (u->connected) {
|
||||||
pc = u->peer.connection;
|
pc = u->peer.connection;
|
||||||
|
|
||||||
if (!c->read->delayed && !pc->read->delayed) {
|
if (!c->read->delayed && !pc->read->delayed) {
|
||||||
@ -901,7 +903,7 @@ ngx_stream_proxy_process_connection(ngx_event_t *ev, ngx_uint_t from_upstream)
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (from_upstream && u->upstream_buf.start == NULL) {
|
if (from_upstream && !u->connected) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1000,7 +1002,7 @@ ngx_stream_proxy_process(ngx_stream_session_t *s, ngx_uint_t from_upstream,
|
|||||||
u = s->upstream;
|
u = s->upstream;
|
||||||
|
|
||||||
c = s->connection;
|
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);
|
pscf = ngx_stream_get_module_srv_conf(s, ngx_stream_proxy_module);
|
||||||
|
|
||||||
|
@ -87,8 +87,8 @@ typedef struct {
|
|||||||
#if (NGX_STREAM_SSL)
|
#if (NGX_STREAM_SSL)
|
||||||
ngx_str_t ssl_name;
|
ngx_str_t ssl_name;
|
||||||
#endif
|
#endif
|
||||||
ngx_uint_t proxy_protocol;
|
unsigned connected:1;
|
||||||
/* unsigned proxy_protocol:1; */
|
unsigned proxy_protocol:1;
|
||||||
} ngx_stream_upstream_t;
|
} ngx_stream_upstream_t;
|
||||||
|
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user