fix udp forward: use string as conn map key

This commit is contained in:
ginuerzh 2019-12-17 17:54:00 +08:00
parent f30de10a5d
commit 68f27a15d9
2 changed files with 9 additions and 9 deletions

View File

@ -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()

6
ss.go
View File

@ -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()