mirror of
https://github.com/xjasonlyu/tun2socks.git
synced 2024-12-30 02:37:01 +00:00
Refactor: return metadata.Addr only
This commit is contained in:
@@ -25,9 +25,6 @@ func (m *Metadata) SourceAddress() string {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (m *Metadata) Addr() net.Addr {
|
func (m *Metadata) Addr() net.Addr {
|
||||||
if udpAddr := m.UDPAddr(); udpAddr != nil {
|
|
||||||
return udpAddr
|
|
||||||
}
|
|
||||||
return &Addr{metadata: m}
|
return &Addr{metadata: m}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
+2
-2
@@ -45,8 +45,8 @@ type directPacketConn struct {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (pc *directPacketConn) WriteTo(b []byte, addr net.Addr) (int, error) {
|
func (pc *directPacketConn) WriteTo(b []byte, addr net.Addr) (int, error) {
|
||||||
if ma, ok := addr.(*M.Addr); ok && ma.Metadata().DstIP != nil {
|
if udpAddr, ok := addr.(*net.UDPAddr); ok {
|
||||||
return pc.PacketConn.WriteTo(b, ma.Metadata().UDPAddr())
|
return pc.PacketConn.WriteTo(b, udpAddr)
|
||||||
}
|
}
|
||||||
|
|
||||||
udpAddr, err := net.ResolveUDPAddr("udp", addr.String())
|
udpAddr, err := net.ResolveUDPAddr("udp", addr.String())
|
||||||
|
|||||||
+7
-1
@@ -48,7 +48,13 @@ func handleUDPConn(uc adapter.UDPConn) {
|
|||||||
pc = newUDPTracker(pc, metadata)
|
pc = newUDPTracker(pc, metadata)
|
||||||
defer pc.Close()
|
defer pc.Close()
|
||||||
|
|
||||||
remote := metadata.Addr()
|
var remote net.Addr
|
||||||
|
if udpAddr := metadata.UDPAddr(); udpAddr != nil {
|
||||||
|
remote = udpAddr
|
||||||
|
} else {
|
||||||
|
remote = metadata.Addr()
|
||||||
|
}
|
||||||
|
|
||||||
go handleUDPToRemote(uc, pc, remote)
|
go handleUDPToRemote(uc, pc, remote)
|
||||||
handleUDPToLocal(uc, pc, remote)
|
handleUDPToLocal(uc, pc, remote)
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user