proxy: delete session when dial failed

This commit is contained in:
nadoo 2022-03-06 13:09:37 +08:00
parent fc3a21617e
commit c9c2ce995f
5 changed files with 5 additions and 0 deletions

View File

@ -145,6 +145,7 @@ func (s *Socks5) serveSession(session *Session) {
dstC, dialer, writeTo, err := s.proxy.DialUDP("udp", session.srcPC.tgtAddr.String()) dstC, dialer, writeTo, err := s.proxy.DialUDP("udp", session.srcPC.tgtAddr.String())
if err != nil { if err != nil {
log.F("[socks5u] remote dial error: %v", err) log.F("[socks5u] remote dial error: %v", err)
nm.Delete(session.key)
return return
} }
dstPC := NewPktConn(dstC, writeTo, nil, false, nil) dstPC := NewPktConn(dstC, writeTo, nil, false, nil)

View File

@ -132,6 +132,7 @@ func (s *SS) serveSession(session *Session) {
dstC, dialer, writeTo, err := s.proxy.DialUDP("udp", session.srcPC.tgtAddr.String()) dstC, dialer, writeTo, err := s.proxy.DialUDP("udp", session.srcPC.tgtAddr.String())
if err != nil { if err != nil {
log.F("[ssu] remote dial error: %v", err) log.F("[ssu] remote dial error: %v", err)
nm.Delete(session.key)
return return
} }
dstPC := NewPktConn(dstC, writeTo, nil, false) dstPC := NewPktConn(dstC, writeTo, nil, false)

View File

@ -106,6 +106,7 @@ func (s *TProxy) serveSession(session *Session) {
dstPC, dialer, writeTo, err := s.proxy.DialUDP("udp", session.dst.String()) dstPC, dialer, writeTo, err := s.proxy.DialUDP("udp", session.dst.String())
if err != nil { if err != nil {
log.F("[tproxyu] dial to %s error: %v", session.dst, err) log.F("[tproxyu] dial to %s error: %v", session.dst, err)
nm.Delete(session.key)
return return
} }
defer dstPC.Close() defer dstPC.Close()

View File

@ -94,6 +94,7 @@ func (s *UDP) serveSession(session *Session) {
dstPC, dialer, writeTo, err := s.proxy.DialUDP("udp", session.src.String()) dstPC, dialer, writeTo, err := s.proxy.DialUDP("udp", session.src.String())
if err != nil { if err != nil {
log.F("[udp] remote dial error: %v", err) log.F("[udp] remote dial error: %v", err)
nm.Delete(session.key)
return return
} }
defer dstPC.Close() defer dstPC.Close()

View File

@ -143,6 +143,7 @@ func (s *Unix) serveSession(session *Session) {
dstPC, dialer, writeTo, err := s.proxy.DialUDP("udp", "") dstPC, dialer, writeTo, err := s.proxy.DialUDP("udp", "")
if err != nil { if err != nil {
log.F("[unix] remote dial error: %v", err) log.F("[unix] remote dial error: %v", err)
nm.Delete(session.key)
return return
} }
defer dstPC.Close() defer dstPC.Close()