diff --git a/adapter/outbound/http.go b/adapter/outbound/http.go index 7f480ce6b..44dc705a0 100644 --- a/adapter/outbound/http.go +++ b/adapter/outbound/http.go @@ -136,6 +136,7 @@ func NewHttp(option HttpOption) *Http { addr: net.JoinHostPort(option.Server, strconv.Itoa(option.Port)), tp: C.Http, iface: option.Interface, + rmark: option.RoutingMark, }, user: option.UserName, pass: option.Password, diff --git a/adapter/outbound/shadowsocks.go b/adapter/outbound/shadowsocks.go index 71b4ae5e7..d80c79625 100644 --- a/adapter/outbound/shadowsocks.go +++ b/adapter/outbound/shadowsocks.go @@ -160,6 +160,7 @@ func NewShadowSocks(option ShadowSocksOption) (*ShadowSocks, error) { tp: C.Shadowsocks, udp: option.UDP, iface: option.Interface, + rmark: option.RoutingMark, }, cipher: ciph, diff --git a/adapter/outbound/shadowsocksr.go b/adapter/outbound/shadowsocksr.go index d244df406..a5f07ef66 100644 --- a/adapter/outbound/shadowsocksr.go +++ b/adapter/outbound/shadowsocksr.go @@ -142,6 +142,7 @@ func NewShadowSocksR(option ShadowSocksROption) (*ShadowSocksR, error) { tp: C.ShadowsocksR, udp: option.UDP, iface: option.Interface, + rmark: option.RoutingMark, }, cipher: coreCiph, obfs: obfs, diff --git a/adapter/outbound/snell.go b/adapter/outbound/snell.go index d90922ea6..07f3d89d7 100644 --- a/adapter/outbound/snell.go +++ b/adapter/outbound/snell.go @@ -142,6 +142,7 @@ func NewSnell(option SnellOption) (*Snell, error) { tp: C.Snell, udp: option.UDP, iface: option.Interface, + rmark: option.RoutingMark, }, psk: psk, obfsOption: obfsOption, diff --git a/adapter/outbound/socks5.go b/adapter/outbound/socks5.go index d81c76140..398ee3b26 100644 --- a/adapter/outbound/socks5.go +++ b/adapter/outbound/socks5.go @@ -154,6 +154,7 @@ func NewSocks5(option Socks5Option) *Socks5 { tp: C.Socks5, udp: option.UDP, iface: option.Interface, + rmark: option.RoutingMark, }, user: option.UserName, pass: option.Password, diff --git a/adapter/outbound/trojan.go b/adapter/outbound/trojan.go index 668cbb2da..60fd54108 100644 --- a/adapter/outbound/trojan.go +++ b/adapter/outbound/trojan.go @@ -189,6 +189,7 @@ func NewTrojan(option TrojanOption) (*Trojan, error) { tp: C.Trojan, udp: option.UDP, iface: option.Interface, + rmark: option.RoutingMark, }, instance: trojan.New(tOption), option: &option, diff --git a/adapter/outbound/vmess.go b/adapter/outbound/vmess.go index 1dfd2d95b..c36baf6cf 100644 --- a/adapter/outbound/vmess.go +++ b/adapter/outbound/vmess.go @@ -291,6 +291,7 @@ func NewVmess(option VmessOption) (*Vmess, error) { tp: C.Vmess, udp: option.UDP, iface: option.Interface, + rmark: option.RoutingMark, }, client: client, option: &option, diff --git a/component/process/process_linux.go b/component/process/process_linux.go index f5e8de0b3..f1d46cc82 100644 --- a/component/process/process_linux.go +++ b/component/process/process_linux.go @@ -105,9 +105,9 @@ func resolveSocketByNetlink(network string, ip net.IP, srcPort int) (int32, int3 return 0, 0, fmt.Errorf("netlink message: NLMSG_ERROR") } - uid, inode := unpackSocketDiagResponse(&messages[0]) - if uid < 0 || inode < 0 { - return 0, 0, fmt.Errorf("invalid uid(%d) or inode(%d)", uid, inode) + inode, uid := unpackSocketDiagResponse(&messages[0]) + if inode < 0 || uid < 0 { + return 0, 0, fmt.Errorf("invalid inode(%d) or uid(%d)", inode, uid) } return inode, uid, nil