From 319916124bda1fb9a7a68607dd03b550f8a7f590 Mon Sep 17 00:00:00 2001 From: Jakob Borg Date: Thu, 27 Jul 2023 00:55:48 +0200 Subject: [PATCH] cmd/strelaysrv: Handle accept error with debug set (fixes #9001) (#9004) --- cmd/strelaysrv/listener.go | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/cmd/strelaysrv/listener.go b/cmd/strelaysrv/listener.go index dc3724c0f..c89f8a2c8 100644 --- a/cmd/strelaysrv/listener.go +++ b/cmd/strelaysrv/listener.go @@ -36,8 +36,14 @@ func listener(_, addr string, config *tls.Config, token string) { for { conn, isTLS, err := listener.AcceptNoWrapTLS() if err != nil { + // Conn may be nil if accept failed, or non-nil if the initial + // read to figure out if it's TLS or not failed. In the latter + // case, close the connection before moving on. + if conn != nil { + conn.Close() + } if debug { - log.Println("Listener failed to accept connection from", conn.RemoteAddr(), ". Possibly a TCP Ping.") + log.Println("Listener failed to accept:", err) } continue }