From 402cfc9e25e698d0f71e83a952a69a56ec92c355 Mon Sep 17 00:00:00 2001 From: Andy Wang Date: Sun, 5 Apr 2020 01:15:45 +0100 Subject: [PATCH] Logging for silent connections --- cmd/ck-server/ck-server.go | 4 +++- internal/multiplex/switchboard.go | 2 +- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/cmd/ck-server/ck-server.go b/cmd/ck-server/ck-server.go index 9098453..143bcf2 100644 --- a/cmd/ck-server/ck-server.go +++ b/cmd/ck-server/ck-server.go @@ -32,7 +32,9 @@ func dispatchConnection(conn net.Conn, sta *server.State) { conn.SetReadDeadline(time.Now().Add(3 * time.Second)) i, err := io.ReadAtLeast(conn, buf, 1) if err != nil { - go conn.Close() + log.WithField("remoteAddr", remoteAddr). + Infof("failed to read anything after connection is established: %v", err) + conn.Close() return } conn.SetReadDeadline(time.Time{}) diff --git a/internal/multiplex/switchboard.go b/internal/multiplex/switchboard.go index ae596e8..071f604 100644 --- a/internal/multiplex/switchboard.go +++ b/internal/multiplex/switchboard.go @@ -152,6 +152,7 @@ func (sb *switchboard) closeAll() { // deplex function costantly reads from a TCP connection func (sb *switchboard) deplex(connId uint32, conn net.Conn) { + defer conn.Close() buf := make([]byte, 20480) for { n, err := sb.session.UnitRead(conn, buf) @@ -159,7 +160,6 @@ func (sb *switchboard) deplex(connId uint32, conn net.Conn) { sb.Valve.AddRx(int64(n)) if err != nil { log.Debugf("a connection for session %v has closed: %v", sb.session.id, err) - go conn.Close() sb.close("a connection has dropped unexpectedly") return }