mirror of
https://github.com/xiaoqidun/probe.git
synced 2026-01-29 04:58:46 +08:00
fix(修复问题): 修复小问题
This commit is contained in:
+5
-9
@@ -42,10 +42,9 @@ func (a *SocksAddr) String() string { return net.JoinHostPort(a.Host, strconv.It
|
|||||||
|
|
||||||
// socks5PacketConn SOCKS5数据包连接实现
|
// socks5PacketConn SOCKS5数据包连接实现
|
||||||
type socks5PacketConn struct {
|
type socks5PacketConn struct {
|
||||||
tcpConn net.Conn
|
tcpConn net.Conn
|
||||||
udpConn *net.UDPConn
|
udpConn *net.UDPConn
|
||||||
relayAddr *net.UDPAddr
|
relayAddr *net.UDPAddr
|
||||||
targetAddr net.Addr
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// ReadFrom 从UDP连接读取数据
|
// ReadFrom 从UDP连接读取数据
|
||||||
@@ -65,9 +64,6 @@ func (c *socks5PacketConn) ReadFrom(p []byte) (n int, addr net.Addr, err error)
|
|||||||
var dataOffset int
|
var dataOffset int
|
||||||
switch atyp {
|
switch atyp {
|
||||||
case 0x01:
|
case 0x01:
|
||||||
if n < 10 {
|
|
||||||
return 0, nil, errors.New("short packet")
|
|
||||||
}
|
|
||||||
ip := net.IP(buf[4:8])
|
ip := net.IP(buf[4:8])
|
||||||
port := binary.BigEndian.Uint16(buf[8:10])
|
port := binary.BigEndian.Uint16(buf[8:10])
|
||||||
rAddr = &net.UDPAddr{IP: ip, Port: int(port)}
|
rAddr = &net.UDPAddr{IP: ip, Port: int(port)}
|
||||||
@@ -96,8 +92,8 @@ func (c *socks5PacketConn) ReadFrom(p []byte) (n int, addr net.Addr, err error)
|
|||||||
default:
|
default:
|
||||||
return 0, nil, fmt.Errorf("unknown address type: 0x%x", atyp)
|
return 0, nil, fmt.Errorf("unknown address type: 0x%x", atyp)
|
||||||
}
|
}
|
||||||
copy(p, buf[dataOffset:n])
|
copied := copy(p, buf[dataOffset:n])
|
||||||
return n - dataOffset, rAddr, nil
|
return copied, rAddr, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
// WriteTo 写入数据到目标地址
|
// WriteTo 写入数据到目标地址
|
||||||
|
|||||||
Reference in New Issue
Block a user