diff options
author | Roman Arutyunyan <arut@nginx.com> | 2018-03-22 18:43:49 +0300 |
---|---|---|
committer | Roman Arutyunyan <arut@nginx.com> | 2018-03-22 18:43:49 +0300 |
commit | f39d5e8b33d507f95e800a6d6301da510a72a3af (patch) | |
tree | 6f2dd4f7d5ca37e5fcdff45ff3d1c6678ca5464e | |
parent | 0ac57648ebc93358e977939bfcb9d1e67485b98e (diff) | |
download | nginx-f39d5e8b33d507f95e800a6d6301da510a72a3af.tar.gz nginx-f39d5e8b33d507f95e800a6d6301da510a72a3af.zip |
Stream: set action before each recv/send while proxying.
Now it's clear from log error message if the error occurred on client or
upstream side.
-rw-r--r-- | src/stream/ngx_stream_proxy_module.c | 13 |
1 files changed, 11 insertions, 2 deletions
diff --git a/src/stream/ngx_stream_proxy_module.c b/src/stream/ngx_stream_proxy_module.c index 818d7329b..30572cdd9 100644 --- a/src/stream/ngx_stream_proxy_module.c +++ b/src/stream/ngx_stream_proxy_module.c @@ -801,8 +801,6 @@ ngx_stream_proxy_init_upstream(ngx_stream_session_t *s) NGX_STREAM_UPSTREAM_NOTIFY_CONNECT); } - c->log->action = "proxying connection"; - if (u->upstream_buf.start == NULL) { p = ngx_pnalloc(c->pool, pscf->buffer_size); if (p == NULL) { @@ -1449,6 +1447,7 @@ static void ngx_stream_proxy_process(ngx_stream_session_t *s, ngx_uint_t from_upstream, ngx_uint_t do_write) { + char *recv_action, *send_action; off_t *received, limit; size_t size, limit_rate; ssize_t n; @@ -1492,6 +1491,8 @@ ngx_stream_proxy_process(ngx_stream_session_t *s, ngx_uint_t from_upstream, received = &u->received; out = &u->downstream_out; busy = &u->downstream_busy; + recv_action = "proxying and reading from upstream"; + send_action = "proxying and sending to client"; } else { src = c; @@ -1501,6 +1502,8 @@ ngx_stream_proxy_process(ngx_stream_session_t *s, ngx_uint_t from_upstream, received = &s->received; out = &u->upstream_out; busy = &u->upstream_busy; + recv_action = "proxying and reading from client"; + send_action = "proxying and sending to upstream"; } for ( ;; ) { @@ -1508,6 +1511,8 @@ ngx_stream_proxy_process(ngx_stream_session_t *s, ngx_uint_t from_upstream, if (do_write && dst) { if (*out || *busy || dst->buffered) { + c->log->action = send_action; + rc = ngx_stream_top_filter(s, *out, from_upstream); if (rc == NGX_ERROR) { @@ -1551,6 +1556,8 @@ ngx_stream_proxy_process(ngx_stream_session_t *s, ngx_uint_t from_upstream, } } + c->log->action = recv_action; + n = src->recv(src, b->last, size); if (n == NGX_AGAIN) { @@ -1620,6 +1627,8 @@ ngx_stream_proxy_process(ngx_stream_session_t *s, ngx_uint_t from_upstream, break; } + c->log->action = "proxying connection"; + if (src->read->eof && dst && (dst->read->eof || !dst->buffered)) { handler = c->log->handler; c->log->handler = NULL; |