diff --git a/limiter/traffic/wrapper/conn.go b/limiter/traffic/wrapper/conn.go index 407b0d8..67a84b2 100644 --- a/limiter/traffic/wrapper/conn.go +++ b/limiter/traffic/wrapper/conn.go @@ -29,16 +29,22 @@ type serverConn struct { limiterOut limiter.Limiter expIn int64 expOut int64 + opts []limiter.Option } -func WrapConn(limiter limiter.TrafficLimiter, c net.Conn) net.Conn { - if limiter == nil { +func WrapConn(tlimiter limiter.TrafficLimiter, c net.Conn) net.Conn { + if tlimiter == nil { return c } return &serverConn{ Conn: c, - limiter: limiter, + limiter: tlimiter, + opts: []limiter.Option{ + limiter.NetworkOption(c.LocalAddr().Network()), + limiter.SrcOption(c.RemoteAddr().String()), + limiter.AddrOption(c.LocalAddr().String()), + }, } } diff --git a/limiter/traffic/wrapper/io.go b/limiter/traffic/wrapper/io.go index 3ee0ee3..901a943 100644 --- a/limiter/traffic/wrapper/io.go +++ b/limiter/traffic/wrapper/io.go @@ -6,7 +6,6 @@ import ( "io" "time" - "github.com/go-gost/core/limiter/traffic" limiter "github.com/go-gost/core/limiter/traffic" ) @@ -19,11 +18,11 @@ type readWriter struct { limiterOut limiter.Limiter expIn int64 expOut int64 - opts []traffic.Option + opts []limiter.Option key string } -func WrapReadWriter(limiter limiter.TrafficLimiter, rw io.ReadWriter, key string, opts ...traffic.Option) io.ReadWriter { +func WrapReadWriter(limiter limiter.TrafficLimiter, rw io.ReadWriter, key string, opts ...limiter.Option) io.ReadWriter { if limiter == nil { return rw } diff --git a/listener/tun/tun_darwin.go b/listener/tun/tun_darwin.go index 2892acf..d517898 100644 --- a/listener/tun/tun_darwin.go +++ b/listener/tun/tun_darwin.go @@ -36,7 +36,7 @@ func (l *tunListener) createTun() (ifce io.ReadWriteCloser, name string, ip net. ip = l.md.config.Net[0].IP } - if err = l.addRoutes(name, l.md.config.Routes...); err != nil { + if err = l.addRoutes(name); err != nil { return } diff --git a/listener/tun/tun_unix.go b/listener/tun/tun_unix.go index 2ed6b43..9f9872e 100644 --- a/listener/tun/tun_unix.go +++ b/listener/tun/tun_unix.go @@ -36,7 +36,7 @@ func (l *tunListener) createTun() (ifce io.ReadWriteCloser, name string, ip net. ip = l.md.config.Net[0].IP } - if err = l.addRoutes(name, l.md.config.Routes...); err != nil { + if err = l.addRoutes(name); err != nil { return } diff --git a/listener/tun/tun_windows.go b/listener/tun/tun_windows.go index ddcb82c..452b948 100644 --- a/listener/tun/tun_windows.go +++ b/listener/tun/tun_windows.go @@ -36,7 +36,7 @@ func (l *tunListener) createTun() (ifce io.ReadWriteCloser, name string, ip net. ip = ipNet.IP } - if err = l.addRoutes(name, l.md.config.Gateway, l.md.config.Routes...); err != nil { + if err = l.addRoutes(name, l.md.config.Gateway); err != nil { return }