Change: use uint16 for Metadata SrcPort and DstPort
This commit is contained in:
@ -53,8 +53,7 @@ func streamConn(c net.Conn, option streamOption) *snell.Snell {
|
||||
// StreamConn implements C.ProxyAdapter
|
||||
func (s *Snell) StreamConn(c net.Conn, metadata *C.Metadata) (net.Conn, error) {
|
||||
c = streamConn(c, streamOption{s.psk, s.version, s.addr, s.obfsOption})
|
||||
port, _ := strconv.ParseUint(metadata.DstPort, 10, 16)
|
||||
err := snell.WriteHeader(c, metadata.String(), uint(port), s.version)
|
||||
err := snell.WriteHeader(c, metadata.String(), uint(metadata.DstPort), s.version)
|
||||
return c, err
|
||||
}
|
||||
|
||||
@ -66,8 +65,7 @@ func (s *Snell) DialContext(ctx context.Context, metadata *C.Metadata, opts ...d
|
||||
return nil, err
|
||||
}
|
||||
|
||||
port, _ := strconv.ParseUint(metadata.DstPort, 10, 16)
|
||||
if err = snell.WriteHeader(c, metadata.String(), uint(port), s.version); err != nil {
|
||||
if err = snell.WriteHeader(c, metadata.String(), uint(metadata.DstPort), s.version); err != nil {
|
||||
c.Close()
|
||||
return nil, err
|
||||
}
|
||||
|
@ -2,7 +2,6 @@ package outbound
|
||||
|
||||
import (
|
||||
"net"
|
||||
"strconv"
|
||||
"time"
|
||||
|
||||
"github.com/Dreamacro/clash/component/resolver"
|
||||
@ -25,7 +24,6 @@ func serializesSocksAddr(metadata *C.Metadata) []byte {
|
||||
addrType := metadata.AddrType()
|
||||
buf.PutUint8(uint8(addrType))
|
||||
|
||||
p, _ := strconv.ParseUint(metadata.DstPort, 10, 16)
|
||||
switch addrType {
|
||||
case socks5.AtypDomainName:
|
||||
buf.PutUint8(uint8(len(metadata.Host)))
|
||||
@ -36,7 +34,7 @@ func serializesSocksAddr(metadata *C.Metadata) []byte {
|
||||
buf.PutSlice(metadata.DstIP.To16())
|
||||
}
|
||||
|
||||
buf.PutUint16be(uint16(p))
|
||||
buf.PutUint16be(uint16(metadata.DstPort))
|
||||
return buf.Bytes()
|
||||
}
|
||||
|
||||
|
@ -354,12 +354,11 @@ func parseVmessAddr(metadata *C.Metadata) *vmess.DstAddr {
|
||||
copy(addr[1:], []byte(metadata.Host))
|
||||
}
|
||||
|
||||
port, _ := strconv.ParseUint(metadata.DstPort, 10, 16)
|
||||
return &vmess.DstAddr{
|
||||
UDP: metadata.NetWork == C.UDP,
|
||||
AddrType: addrType,
|
||||
Addr: addr,
|
||||
Port: uint(port),
|
||||
Port: uint(metadata.DstPort),
|
||||
}
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user