diff --git a/experimental/clashapi/server.go b/experimental/clashapi/server.go index 207facf6..8ff90d20 100644 --- a/experimental/clashapi/server.go +++ b/experimental/clashapi/server.go @@ -43,7 +43,6 @@ type Server struct { trafficManager *trafficontrol.Manager urlTestHistory *urltest.HistoryStorage tcpListener net.Listener - directIO bool mode string storeSelected bool cacheFile adapter.ClashCacheFile @@ -61,7 +60,6 @@ func NewServer(router adapter.Router, logFactory log.ObservableFactory, options }, trafficManager: trafficManager, urlTestHistory: urltest.NewHistoryStorage(), - directIO: options.DirectIO, mode: strings.ToLower(options.DefaultMode), } if server.mode == "" { @@ -156,7 +154,7 @@ func (s *Server) HistoryStorage() *urltest.HistoryStorage { } func (s *Server) RoutedConnection(ctx context.Context, conn net.Conn, metadata adapter.InboundContext, matchedRule adapter.Rule) (net.Conn, adapter.Tracker) { - tracker := trafficontrol.NewTCPTracker(conn, s.trafficManager, castMetadata(metadata), s.router, matchedRule, s.directIO) + tracker := trafficontrol.NewTCPTracker(conn, s.trafficManager, castMetadata(metadata), s.router, matchedRule) return tracker, tracker } diff --git a/experimental/clashapi/trafficontrol/tracker.go b/experimental/clashapi/trafficontrol/tracker.go index d12f508d..7e16dcdd 100644 --- a/experimental/clashapi/trafficontrol/tracker.go +++ b/experimental/clashapi/trafficontrol/tracker.go @@ -74,7 +74,7 @@ func (tt *tcpTracker) WriterReplaceable() bool { return true } -func NewTCPTracker(conn net.Conn, manager *Manager, metadata Metadata, router adapter.Router, rule adapter.Rule, directIO bool) *tcpTracker { +func NewTCPTracker(conn net.Conn, manager *Manager, metadata Metadata, router adapter.Router, rule adapter.Rule) *tcpTracker { uuid, _ := uuid.NewV4() var chain []string @@ -107,7 +107,7 @@ func NewTCPTracker(conn net.Conn, manager *Manager, metadata Metadata, router ad }, func(n int64) { download.Add(n) manager.PushDownloaded(n) - }, directIO), + }), manager: manager, trackerInfo: &trackerInfo{ UUID: uuid, diff --git a/experimental/trackerconn/conn.go b/experimental/trackerconn/conn.go index 0963c713..07efd814 100644 --- a/experimental/trackerconn/conn.go +++ b/experimental/trackerconn/conn.go @@ -10,11 +10,11 @@ import ( "go.uber.org/atomic" ) -func New(conn net.Conn, readCounter []*atomic.Int64, writeCounter []*atomic.Int64, direct bool) *Conn { +func New(conn net.Conn, readCounter []*atomic.Int64, writeCounter []*atomic.Int64) *Conn { return &Conn{bufio.NewExtendedConn(conn), readCounter, writeCounter} } -func NewHook(conn net.Conn, readCounter func(n int64), writeCounter func(n int64), direct bool) *HookConn { +func NewHook(conn net.Conn, readCounter func(n int64), writeCounter func(n int64)) *HookConn { return &HookConn{bufio.NewExtendedConn(conn), readCounter, writeCounter} } diff --git a/experimental/v2rayapi/stats.go b/experimental/v2rayapi/stats.go index ff711e74..dd70af60 100644 --- a/experimental/v2rayapi/stats.go +++ b/experimental/v2rayapi/stats.go @@ -29,7 +29,6 @@ var ( type StatsService struct { createdAt time.Time - directIO bool inbounds map[string]bool outbounds map[string]bool access sync.Mutex @@ -50,7 +49,6 @@ func NewStatsService(options option.V2RayStatsServiceOptions) *StatsService { } return &StatsService{ createdAt: time.Now(), - directIO: options.DirectIO, inbounds: inbounds, outbounds: outbounds, counters: make(map[string]*atomic.Int64), @@ -75,7 +73,7 @@ func (s *StatsService) RoutedConnection(inbound string, outbound string, conn ne writeCounter = append(writeCounter, s.loadOrCreateCounter("outbound>>>"+outbound+">>>traffic>>>downlink")) } s.access.Unlock() - return trackerconn.New(conn, readCounter, writeCounter, s.directIO) + return trackerconn.New(conn, readCounter, writeCounter) } func (s *StatsService) RoutedPacketConnection(inbound string, outbound string, conn N.PacketConn) N.PacketConn { diff --git a/go.mod b/go.mod index d628ab0e..c1864ec0 100644 --- a/go.mod +++ b/go.mod @@ -25,7 +25,7 @@ require ( github.com/sagernet/quic-go v0.0.0-20221108053023-645bcc4f9b15 github.com/sagernet/sing v0.0.0-20221008120626-60a9910eefe4 github.com/sagernet/sing-dns v0.0.0-20221113031420-c6aaf2ea4b10 - github.com/sagernet/sing-shadowsocks v0.0.0-20220819002358-7461bb09a8f6 + github.com/sagernet/sing-shadowsocks v0.0.0-20221115140728-028358027bfa github.com/sagernet/sing-tun v0.0.0-20221104121441-66c48a57776f github.com/sagernet/sing-vmess v0.0.0-20221109021549-b446d5bdddf0 github.com/sagernet/smux v0.0.0-20220831015742-e0f1988e3195 diff --git a/go.sum b/go.sum index 6db825a5..f943e4a8 100644 --- a/go.sum +++ b/go.sum @@ -136,8 +136,8 @@ github.com/sagernet/sing v0.0.0-20221008120626-60a9910eefe4 h1:LO7xMvMGhYmjQg2vj github.com/sagernet/sing v0.0.0-20221008120626-60a9910eefe4/go.mod h1:zvgDYKI+vCAW9RyfyrKTgleI+DOa8lzHMPC7VZo3OL4= github.com/sagernet/sing-dns v0.0.0-20221113031420-c6aaf2ea4b10 h1:K84AY2TxNX37ePYXVO6QTD/kgn9kDo4oGpTIn9PF5bo= github.com/sagernet/sing-dns v0.0.0-20221113031420-c6aaf2ea4b10/go.mod h1:VAvOT1pyryBIthTGRryFLXAsR1VRQZ05wolMYeQrr/E= -github.com/sagernet/sing-shadowsocks v0.0.0-20220819002358-7461bb09a8f6 h1:JJfDeYYhWunvtxsU/mOVNTmFQmnzGx9dY034qG6G3g4= -github.com/sagernet/sing-shadowsocks v0.0.0-20220819002358-7461bb09a8f6/go.mod h1:EX3RbZvrwAkPI2nuGa78T2iQXmrkT+/VQtskjou42xM= +github.com/sagernet/sing-shadowsocks v0.0.0-20221115140728-028358027bfa h1:L8x5xAykEs9jcEYVLDAOYSkERLfKOkU8TCKlWBOF91c= +github.com/sagernet/sing-shadowsocks v0.0.0-20221115140728-028358027bfa/go.mod h1:16sNARQbsFbYIzAuPySszQA6Wfgzk7GWSzh1a6kDrUU= github.com/sagernet/sing-tun v0.0.0-20221104121441-66c48a57776f h1:CXF+nErOb9f7qiHingSgTa2/lJAgmEFtAQ47oVwdRGU= github.com/sagernet/sing-tun v0.0.0-20221104121441-66c48a57776f/go.mod h1:1u3pjXA9HmH7kRiBJqM3C/zPxrxnCLd3svmqtub/RFU= github.com/sagernet/sing-vmess v0.0.0-20221109021549-b446d5bdddf0 h1:z3kuD3hPNdEq7/wVy5lwE21f+8ZTazBtR81qswxJoCc= diff --git a/option/clash.go b/option/clash.go index 135a6300..6d30bb3d 100644 --- a/option/clash.go +++ b/option/clash.go @@ -4,7 +4,6 @@ type ClashAPIOptions struct { ExternalController string `json:"external_controller,omitempty"` ExternalUI string `json:"external_ui,omitempty"` Secret string `json:"secret,omitempty"` - DirectIO bool `json:"direct_io,omitempty"` DefaultMode string `json:"default_mode,omitempty"` StoreSelected bool `json:"store_selected,omitempty"` CacheFile string `json:"cache_file,omitempty"` diff --git a/option/shadowsocks.go b/option/shadowsocks.go index 33528292..56b528b2 100644 --- a/option/shadowsocks.go +++ b/option/shadowsocks.go @@ -2,12 +2,11 @@ package option type ShadowsocksInboundOptions struct { ListenOptions - Network NetworkList `json:"network,omitempty"` - Method string `json:"method"` - Password string `json:"password"` - ControlPassword string `json:"control_password,omitempty"` - Users []ShadowsocksUser `json:"users,omitempty"` - Destinations []ShadowsocksDestination `json:"destinations,omitempty"` + Network NetworkList `json:"network,omitempty"` + Method string `json:"method"` + Password string `json:"password"` + Users []ShadowsocksUser `json:"users,omitempty"` + Destinations []ShadowsocksDestination `json:"destinations,omitempty"` } type ShadowsocksUser struct { diff --git a/option/v2ray.go b/option/v2ray.go index 25d3138a..707315ca 100644 --- a/option/v2ray.go +++ b/option/v2ray.go @@ -7,7 +7,6 @@ type V2RayAPIOptions struct { type V2RayStatsServiceOptions struct { Enabled bool `json:"enabled,omitempty"` - DirectIO bool `json:"direct_io,omitempty"` Inbounds []string `json:"inbounds,omitempty"` Outbounds []string `json:"outbounds,omitempty"` } diff --git a/transport/v2raygrpclite/conn.go b/transport/v2raygrpclite/conn.go index c48cea4c..0cb7b810 100644 --- a/transport/v2raygrpclite/conn.go +++ b/transport/v2raygrpclite/conn.go @@ -150,7 +150,6 @@ func (c *GunConn) SetDeadline(t time.Time) error { return responseWriter.SetWriteDeadline(t) } return os.ErrInvalid - } func (c *GunConn) SetReadDeadline(t time.Time) error {