Bläddra i källkod

Fix clash server early close

世界 3 år sedan
förälder
incheckning
6253e2e24c
1 ändrade filer med 6 tillägg och 4 borttagningar
  1. 6 4
      experimental/clashapi/server.go

+ 6 - 4
experimental/clashapi/server.go

@@ -25,6 +25,7 @@ import (
 	"github.com/go-chi/cors"
 	"github.com/go-chi/render"
 	"github.com/gorilla/websocket"
+	"github.com/sagernet/sing/common"
 )
 
 var _ adapter.ClashServer = (*Server)(nil)
@@ -103,10 +104,11 @@ func (s *Server) Start() error {
 }
 
 func (s *Server) Close() error {
-	s.httpServer.Close()
-	s.tcpListener.Close()
-	s.trafficManager.Close()
-	return nil
+	return common.Close(
+		common.PtrOrNil(s.httpServer),
+		s.tcpListener,
+		s.trafficManager,
+	)
 }
 
 func (s *Server) RoutedConnection(ctx context.Context, conn net.Conn, metadata adapter.InboundContext, matchedRule adapter.Rule) (net.Conn, adapter.Tracker) {