Просмотр исходного кода

handle proxy error in mux client

Darien Raymond 8 лет назад
Родитель
Сommit
95c469c1fd
1 измененных файлов с 8 добавлено и 1 удалено
  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,