Ver código fonte

handle proxy error in mux client

Darien Raymond 8 anos atrás
pai
commit
95c469c1fd
1 arquivos alterados com 8 adições e 1 exclusões
  1. 8 1
      app/proxyman/mux/mux.go

+ 8 - 1
app/proxyman/mux/mux.go

@@ -90,7 +90,14 @@ func NewClient(p proxy.Outbound, dialer proxy.Dialer, m *ClientManager) (*Client
 	ctx, cancel := context.WithCancel(context.Background())
 	ctx = proxy.ContextWithTarget(ctx, net.TCPDestination(muxCoolAddress, muxCoolPort))
 	pipe := ray.NewRay(ctx)
-	go p.Process(ctx, pipe, dialer)
+
+	go func() {
+		if err := p.Process(ctx, pipe, dialer); err != nil {
+			cancel()
+			log.Trace(errors.New("failed to handler mux client connection").Base(err).AtWarning())
+		}
+	}()
+
 	c := &Client{
 		sessionManager: NewSessionManager(),
 		inboundRay:     pipe,