fix udp forward: use string as conn map key
This commit is contained in:
parent
f30de10a5d
commit
68f27a15d9
12
forward.go
12
forward.go
@ -412,17 +412,17 @@ func (l *udpDirectForwardListener) listenLoop() {
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
conn, ok := l.connMap.Get(raddr)
|
conn, ok := l.connMap.Get(raddr.String())
|
||||||
if !ok {
|
if !ok {
|
||||||
conn = newUDPServerConn(l.ln, raddr, l.ttl)
|
conn = newUDPServerConn(l.ln, raddr, l.ttl)
|
||||||
conn.onClose = func() {
|
conn.onClose = func() {
|
||||||
l.connMap.Delete(raddr)
|
l.connMap.Delete(raddr.String())
|
||||||
log.Logf("[udp] %s closed (%d)", raddr, l.connMap.Size())
|
log.Logf("[udp] %s closed (%d)", raddr, l.connMap.Size())
|
||||||
}
|
}
|
||||||
|
|
||||||
select {
|
select {
|
||||||
case l.connChan <- conn:
|
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())
|
log.Logf("[udp] %s -> %s (%d)", raddr, l.Addr(), l.connMap.Size())
|
||||||
default:
|
default:
|
||||||
conn.Close()
|
conn.Close()
|
||||||
@ -902,17 +902,17 @@ func (l *udpRemoteForwardListener) listenLoop() {
|
|||||||
break
|
break
|
||||||
}
|
}
|
||||||
|
|
||||||
uc, ok := l.connMap.Get(raddr)
|
uc, ok := l.connMap.Get(raddr.String())
|
||||||
if !ok {
|
if !ok {
|
||||||
uc = newUDPServerConn(conn, raddr, l.ttl)
|
uc = newUDPServerConn(conn, raddr, l.ttl)
|
||||||
uc.onClose = func() {
|
uc.onClose = func() {
|
||||||
l.connMap.Delete(raddr)
|
l.connMap.Delete(raddr.String())
|
||||||
log.Logf("[rudp] %s closed (%d)", raddr, l.connMap.Size())
|
log.Logf("[rudp] %s closed (%d)", raddr, l.connMap.Size())
|
||||||
}
|
}
|
||||||
|
|
||||||
select {
|
select {
|
||||||
case l.connChan <- uc:
|
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())
|
log.Logf("[rudp] %s -> %s (%d)", raddr, l.Addr(), l.connMap.Size())
|
||||||
default:
|
default:
|
||||||
uc.Close()
|
uc.Close()
|
||||||
|
6
ss.go
6
ss.go
@ -348,17 +348,17 @@ func (l *shadowUDPListener) listenLoop() {
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
conn, ok := l.connMap.Get(raddr)
|
conn, ok := l.connMap.Get(raddr.String())
|
||||||
if !ok {
|
if !ok {
|
||||||
conn = newUDPServerConn(l.ln, raddr, l.ttl)
|
conn = newUDPServerConn(l.ln, raddr, l.ttl)
|
||||||
conn.onClose = func() {
|
conn.onClose = func() {
|
||||||
l.connMap.Delete(raddr)
|
l.connMap.Delete(raddr.String())
|
||||||
log.Logf("[ssu] %s closed (%d)", raddr, l.connMap.Size())
|
log.Logf("[ssu] %s closed (%d)", raddr, l.connMap.Size())
|
||||||
}
|
}
|
||||||
|
|
||||||
select {
|
select {
|
||||||
case l.connChan <- conn:
|
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())
|
log.Logf("[ssu] %s -> %s (%d)", raddr, l.Addr(), l.connMap.Size())
|
||||||
default:
|
default:
|
||||||
conn.Close()
|
conn.Close()
|
||||||
|
Loading…
Reference in New Issue
Block a user