aboutsummaryrefslogtreecommitdiff
path: root/src/stream/ngx_stream_proxy_module.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/stream/ngx_stream_proxy_module.c')
-rw-r--r--src/stream/ngx_stream_proxy_module.c14
1 files changed, 12 insertions, 2 deletions
diff --git a/src/stream/ngx_stream_proxy_module.c b/src/stream/ngx_stream_proxy_module.c
index dd8d7811d..edffaf8e5 100644
--- a/src/stream/ngx_stream_proxy_module.c
+++ b/src/stream/ngx_stream_proxy_module.c
@@ -1630,6 +1630,9 @@ ngx_stream_proxy_next_upstream(ngx_stream_session_t *s)
}
#endif
+ u->state->bytes_received = u->received;
+ u->state->bytes_sent = pc->sent;
+
ngx_close_connection(pc);
u->peer.connection = NULL;
}
@@ -1658,13 +1661,20 @@ ngx_stream_proxy_finalize(ngx_stream_session_t *s, ngx_uint_t rc)
u->resolved->ctx = NULL;
}
+ pc = u->peer.connection;
+
+ if (u->state) {
+ if (pc) {
+ u->state->bytes_received = u->received;
+ u->state->bytes_sent = pc->sent;
+ }
+ }
+
if (u->peer.free && u->peer.sockaddr) {
u->peer.free(&u->peer, u->peer.data, 0);
u->peer.sockaddr = NULL;
}
- pc = u->peer.connection;
-
if (pc) {
ngx_log_debug1(NGX_LOG_DEBUG_STREAM, s->connection->log, 0,
"close stream proxy upstream connection: %d", pc->fd);