diff --git a/go.mod b/go.mod index 7e19834..266fe08 100644 --- a/go.mod +++ b/go.mod @@ -7,7 +7,7 @@ require ( github.com/go-ole/go-ole v1.3.0 github.com/sagernet/gvisor v0.0.0-20231209105102-8d27a30e436e github.com/sagernet/netlink v0.0.0-20220905062125-8043b4a9aa97 - github.com/sagernet/sing v0.3.0-beta.3 + github.com/sagernet/sing v0.3.0-beta.4 github.com/scjalliance/comshim v0.0.0-20230315213746-5e51f40bd3b9 go4.org/netipx v0.0.0-20231129151722-fdeea329fbba golang.org/x/net v0.19.0 diff --git a/go.sum b/go.sum index 598eba0..b8e388a 100644 --- a/go.sum +++ b/go.sum @@ -10,8 +10,8 @@ github.com/sagernet/gvisor v0.0.0-20231209105102-8d27a30e436e h1:DOkjByVeAR56dks github.com/sagernet/gvisor v0.0.0-20231209105102-8d27a30e436e/go.mod h1:fLxq/gtp0qzkaEwywlRRiGmjOK5ES/xUzyIKIFP2Asw= github.com/sagernet/netlink v0.0.0-20220905062125-8043b4a9aa97 h1:iL5gZI3uFp0X6EslacyapiRz7LLSJyr4RajF/BhMVyE= github.com/sagernet/netlink v0.0.0-20220905062125-8043b4a9aa97/go.mod h1:xLnfdiJbSp8rNqYEdIW/6eDO4mVoogml14Bh2hSiFpM= -github.com/sagernet/sing v0.3.0-beta.3 h1:E2xBoJUducK/FE6EwMk95Rt2bkXeht9l1BTYRui+DXs= -github.com/sagernet/sing v0.3.0-beta.3/go.mod h1:9pfuAH6mZfgnz/YjP6xu5sxx882rfyjpcrTdUpd6w3g= +github.com/sagernet/sing v0.3.0-beta.4 h1:IOzVyzVObh6YJd9e27NQeyk+A8NuJ2fUqii3WlF6Yrc= +github.com/sagernet/sing v0.3.0-beta.4/go.mod h1:9pfuAH6mZfgnz/YjP6xu5sxx882rfyjpcrTdUpd6w3g= github.com/scjalliance/comshim v0.0.0-20230315213746-5e51f40bd3b9 h1:rc/CcqLH3lh8n+csdOuDfP+NuykE0U6AeYSJJHKDgSg= github.com/scjalliance/comshim v0.0.0-20230315213746-5e51f40bd3b9/go.mod h1:a/83NAfUXvEuLpmxDssAXxgUgrEy12MId3Wd7OTs76s= github.com/stretchr/testify v1.8.4 h1:CcVxjf3Q8PM0mHUKJCdn+eZZtm5yQwehR5yeSVQQcUk= diff --git a/stack_system.go b/stack_system.go index c1d1216..e4cf7a6 100644 --- a/stack_system.go +++ b/stack_system.go @@ -111,9 +111,9 @@ func (s *System) start() error { var listener net.ListenConfig if s.bindInterface { listener.Control = control.Append(listener.Control, func(network, address string, conn syscall.RawConn) error { - err := control.BindToInterface(s.interfaceFinder, s.tunName, -1)(network, address, conn) - if err != nil { - s.logger.Warn("bind forwarder to interface: ", err) + bindErr := control.BindToInterface0(s.interfaceFinder, conn, network, address, s.tunName, -1, true) + if bindErr != nil { + s.logger.Warn("bind forwarder to interface: ", bindErr) } return nil })