From 13e78051702c26ad112d1edbf3c3385272419dba Mon Sep 17 00:00:00 2001
From: David Gibson <david@gibson.dropbear.id.au>
Date: Fri, 28 Mar 2025 16:41:42 +1100
Subject: [PATCH] log tcp socket error

---
 tcp.c | 9 +++++++++
 1 file changed, 9 insertions(+)

diff --git a/tcp.c b/tcp.c
index fa1d885..c2fa2c3 100644
--- a/tcp.c
+++ b/tcp.c
@@ -2333,6 +2333,15 @@ void tcp_sock_handler(const struct ctx *c, union epoll_ref ref,
 		return;
 
 	if (events & EPOLLERR) {
+		int err;
+		socklen_t sl = sizeof(err);
+
+		if (getsockopt(conn->sock, SOL_SOCKET, SO_ERROR, &err, &sl))
+			flow_dbg(conn, "Error getting SO_ERROR: %s",
+				 strerror_(errno));
+		else
+			flow_dbg(conn, "Resetting due to socket error: %s",
+				 strerror_(err));
 		tcp_rst(c, conn);
 		return;
 	}