[Fixed] Abnormal rule when host is ip addr

This commit is contained in:
gVisor bot 2022-02-04 16:45:23 +08:00
parent def6ed7da8
commit b79eb1cea9

View file

@ -26,10 +26,20 @@ func NewInner(conn net.Conn, dst string, host string) *context.ConnContext {
metadata.NetWork = C.TCP
metadata.Type = C.INNER
metadata.DNSMode = C.DNSMapping
metadata.AddrType = C.AtypDomainName
metadata.Host = host
if _, port, err := parseAddr(dst); err == nil {
metadata.AddrType = C.AtypDomainName
if ip, port, err := parseAddr(dst); err == nil {
metadata.DstPort = port
if host == "" {
metadata.DstIP = ip
if ip.To4() == nil {
metadata.AddrType = C.AtypIPv6
} else {
metadata.AddrType = C.AtypIPv4
}
}
}
return context.NewConnContext(conn, metadata)
}