refresh timeout when new udp and fix log

This commit is contained in:
octeep 2022-10-07 13:32:56 +01:00 committed by octeep
parent 70db0f727f
commit 2c8b0d7b9b

View file

@ -148,6 +148,7 @@ func (d *VirtualTun) TCPHandle(s *socks5.Server, c *net.TCPConn, r *socks5.Reque
log.Println(err) log.Println(err)
break break
} }
d.natEntryToMappedPort.Set(srcAddr, entry, 0)
d1 := socks5.NewDatagram(a, addr, port, b[0:n]) d1 := socks5.NewDatagram(a, addr, port, b[0:n])
if _, err := s.UDPConn.WriteToUDP(d1.Bytes(), caddr); err != nil { if _, err := s.UDPConn.WriteToUDP(d1.Bytes(), caddr); err != nil {
break break
@ -156,7 +157,7 @@ func (d *VirtualTun) TCPHandle(s *socks5.Server, c *net.TCPConn, r *socks5.Reque
_ = conn.Close() _ = conn.Close()
d.natEntryToMappedPort.Delete(srcAddr) d.natEntryToMappedPort.Delete(srcAddr)
}() }()
fmt.Printf("%s udp mapped to port %d", srcAddr, mappedPort) fmt.Printf("%s udp mapped to port %d\n", srcAddr, mappedPort)
return nil return nil
} }
return socks5.ErrUnsupportCmd return socks5.ErrUnsupportCmd
@ -169,6 +170,8 @@ func (d *VirtualTun) UDPHandle(server *socks5.Server, addr *net.UDPAddr, datagra
return fmt.Errorf("this udp address %s is not associated", srcAddr) return fmt.Errorf("this udp address %s is not associated", srcAddr)
} }
natEntry := entry.(*NatEntry) natEntry := entry.(*NatEntry)
// refresh timeout
d.natEntryToMappedPort.Set(srcAddr, entry, 0)
raddr, err := net.ResolveUDPAddr("udp", datagram.Address()) raddr, err := net.ResolveUDPAddr("udp", datagram.Address())
if err != nil { if err != nil {
return err return err