From a413b83c013ec8930b84d11a65550b7b34ae7740 Mon Sep 17 00:00:00 2001 From: Jakob Borg Date: Thu, 20 Aug 2015 13:58:07 +0200 Subject: [PATCH] Fix broken connection close --- cmd/relaysrv/session_listener.go | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/cmd/relaysrv/session_listener.go b/cmd/relaysrv/session_listener.go index 2f6bae9a..82d2ec73 100644 --- a/cmd/relaysrv/session_listener.go +++ b/cmd/relaysrv/session_listener.go @@ -36,8 +36,6 @@ func sessionListener(addr string) { } func sessionConnectionHandler(conn net.Conn) { - defer conn.Close() - if err := conn.SetDeadline(time.Now().Add(messageTimeout)); err != nil { if debug { log.Println("Weird error setting deadline:", err, "on", conn.RemoteAddr()) @@ -59,6 +57,7 @@ func sessionConnectionHandler(conn net.Conn) { if ses == nil { protocol.WriteMessage(conn, protocol.ResponseNotFound) + conn.Close() return } @@ -67,6 +66,7 @@ func sessionConnectionHandler(conn net.Conn) { log.Println("Failed to add", conn.RemoteAddr(), "to session", ses) } protocol.WriteMessage(conn, protocol.ResponseAlreadyConnected) + conn.Close() return } @@ -81,12 +81,15 @@ func sessionConnectionHandler(conn net.Conn) { if debug { log.Println("Weird error setting deadline:", err, "on", conn.RemoteAddr()) } + conn.Close() return } + default: if debug { log.Println("Unexpected message from", conn.RemoteAddr(), message) } protocol.WriteMessage(conn, protocol.ResponseUnexpectedMessage) + conn.Close() } }