From 68f27a15d938b6ec691081cc81ce5ac6c14429da Mon Sep 17 00:00:00 2001 From: ginuerzh Date: Tue, 17 Dec 2019 17:54:00 +0800 Subject: [PATCH] fix udp forward: use string as conn map key --- forward.go | 12 ++++++------ ss.go | 6 +++--- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/forward.go b/forward.go index f2671df..1dab036 100644 --- a/forward.go +++ b/forward.go @@ -412,17 +412,17 @@ func (l *udpDirectForwardListener) listenLoop() { return } - conn, ok := l.connMap.Get(raddr) + conn, ok := l.connMap.Get(raddr.String()) if !ok { conn = newUDPServerConn(l.ln, raddr, l.ttl) conn.onClose = func() { - l.connMap.Delete(raddr) + l.connMap.Delete(raddr.String()) log.Logf("[udp] %s closed (%d)", raddr, l.connMap.Size()) } select { case l.connChan <- conn: - l.connMap.Set(raddr, conn) + l.connMap.Set(raddr.String(), conn) log.Logf("[udp] %s -> %s (%d)", raddr, l.Addr(), l.connMap.Size()) default: conn.Close() @@ -902,17 +902,17 @@ func (l *udpRemoteForwardListener) listenLoop() { break } - uc, ok := l.connMap.Get(raddr) + uc, ok := l.connMap.Get(raddr.String()) if !ok { uc = newUDPServerConn(conn, raddr, l.ttl) uc.onClose = func() { - l.connMap.Delete(raddr) + l.connMap.Delete(raddr.String()) log.Logf("[rudp] %s closed (%d)", raddr, l.connMap.Size()) } select { case l.connChan <- uc: - l.connMap.Set(raddr, uc) + l.connMap.Set(raddr.String(), uc) log.Logf("[rudp] %s -> %s (%d)", raddr, l.Addr(), l.connMap.Size()) default: uc.Close() diff --git a/ss.go b/ss.go index 8848ae7..9a62a0d 100644 --- a/ss.go +++ b/ss.go @@ -348,17 +348,17 @@ func (l *shadowUDPListener) listenLoop() { return } - conn, ok := l.connMap.Get(raddr) + conn, ok := l.connMap.Get(raddr.String()) if !ok { conn = newUDPServerConn(l.ln, raddr, l.ttl) conn.onClose = func() { - l.connMap.Delete(raddr) + l.connMap.Delete(raddr.String()) log.Logf("[ssu] %s closed (%d)", raddr, l.connMap.Size()) } select { case l.connChan <- conn: - l.connMap.Set(raddr, conn) + l.connMap.Set(raddr.String(), conn) log.Logf("[ssu] %s -> %s (%d)", raddr, l.Addr(), l.connMap.Size()) default: conn.Close()