From beb6568ce0e2ce6ddf64829553c00c6f5982aca5 Mon Sep 17 00:00:00 2001 From: Andy Wang Date: Tue, 15 Oct 2019 22:06:23 +0100 Subject: [PATCH] Check before passive close --- internal/multiplex/switchboard.go | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/internal/multiplex/switchboard.go b/internal/multiplex/switchboard.go index 20416f5..3bdb829 100644 --- a/internal/multiplex/switchboard.go +++ b/internal/multiplex/switchboard.go @@ -61,8 +61,10 @@ func (sb *switchboard) removeConn(connId uint32) { sb.connsM.Unlock() if remaining == 0 { atomic.StoreUint32(&sb.broken, 1) - sb.session.SetTerminalMsg("no underlying connection left") - sb.session.passiveClose() + if !sb.session.IsClosed() { + sb.session.SetTerminalMsg("no underlying connection left") + sb.session.passiveClose() + } } }