commit 25bdbaba5dc0c7dca982ebd8afff525f2781e593
| author | 斟酌 鵬兄 <tgckpg@gmail.com> |
| date | 2026-06-06T17:24:46Z |
| subject | log debug on upstream reset |
commit 25bdbaba5dc0c7dca982ebd8afff525f2781e593
Author: 斟酌 鵬兄 <tgckpg@gmail.com>
Date: 2026-06-06T17:24:46Z
log debug on upstream reset
---
src/stream_conn.c | 20 ++++++++++++++++++--
1 file changed, 18 insertions(+), 2 deletions(-)
diff --git a/src/stream_conn.c b/src/stream_conn.c
index 22be8fb..9891c34 100644
--- a/src/stream_conn.c
+++ b/src/stream_conn.c
@@ -221,6 +221,8 @@ void stream_upstream_event_cb(struct bufferevent *bev, short events, void *arg)
conn_t *conn = arg;
const struct route *r = conn->route;
+ char peer_buf[128];
+
if (events & BEV_EVENT_CONNECTED) {
set_idle_timeouts(conn, conn->route);
@@ -232,7 +234,9 @@ void stream_upstream_event_cb(struct bufferevent *bev, short events, void *arg)
if (events & BEV_EVENT_TIMEOUT) {
LOG_WARN("upstream connection timed out",
"listen", _LOGV_ENDPOINT(&r->listen),
- "upstream", _LOGV_ENDPOINT(&r->upstream)
+ "upstream", _LOGV_ENDPOINT(&r->upstream),
+ "client_addr", _LOGV_SOCKADDR(&conn->peer_addr, conn->peer_addr_len,
+ peer_buf, sizeof(peer_buf))
);
goto out_free;
}
@@ -251,10 +255,22 @@ void stream_upstream_event_cb(struct bufferevent *bev, short events, void *arg)
goto out_drain_client;
}
+ if (err == ECONNRESET) {
+ LOG_DEBUG("upstream reset connection",
+ "listen", _LOGV_ENDPOINT(&r->listen),
+ "upstream", _LOGV_ENDPOINT(&r->upstream),
+ "client_addr", _LOGV_SOCKADDR(&conn->peer_addr, conn->peer_addr_len,
+ peer_buf, sizeof(peer_buf))
+ );
+ goto out_free;
+ }
+
LOG_WARN("upstream connection error",
"err", _LOGV(evutil_socket_error_to_string(err)),
"listen", _LOGV_ENDPOINT(&r->listen),
- "upstream", _LOGV_ENDPOINT(&r->upstream)
+ "upstream", _LOGV_ENDPOINT(&r->upstream),
+ "client_addr", _LOGV_SOCKADDR(&conn->peer_addr, conn->peer_addr_len,
+ peer_buf, sizeof(peer_buf))
);
goto out_free;
}