chore: update proxy's udpConn when received a new packet

This commit is contained in:
wwqgtxx
2023-06-03 21:40:09 +08:00
committed by Larvan2
parent 6c7d1657a5
commit 1a44dcee55
11 changed files with 80 additions and 28 deletions

View File

@ -58,7 +58,7 @@ func (l *UDPListener) LocalAddr() net.Addr {
return l.packetConn.LocalAddr()
}
func handleSocksUDP(pc net.PacketConn, in chan<- C.PacketAdapter, buf []byte, put func(), addr net.Addr) {
func handleSocksUDP(pc net.PacketConn, in chan<- C.PacketAdapter, buf []byte, put func(), addr net.Addr, additions ...inbound.Addition) {
tgtAddr := socks5.SplitAddr(buf)
if tgtAddr == nil {
// Unresolved UDP packet, return buffer to the pool
@ -77,7 +77,7 @@ func handleSocksUDP(pc net.PacketConn, in chan<- C.PacketAdapter, buf []byte, pu
put: put,
}
select {
case in <- inbound.NewPacket(target, packet, C.SHADOWSOCKS):
case in <- inbound.NewPacket(target, packet, C.SHADOWSOCKS, additions...):
default:
}
}

View File

@ -38,7 +38,9 @@ func (c *packet) LocalAddr() net.Addr {
func (c *packet) Drop() {
if c.put != nil {
c.put()
c.put = nil
}
c.payload = nil
}
func (c *packet) InAddr() net.Addr {