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 }