Преглед на файлове

handle proxy error in mux client

Darien Raymond преди 8 години
родител
ревизия
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,