فهرست منبع

handle error properly

Darien Raymond 8 سال پیش
والد
کامیت
e064ce65c8
2فایلهای تغییر یافته به همراه7 افزوده شده و 3 حذف شده
  1. 5 1
      app/proxyman/mux/mux.go
  2. 2 2
      app/proxyman/mux/session.go

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

@@ -4,6 +4,7 @@ package mux
 
 import (
 	"context"
+	"io"
 	"sync"
 	"time"
 
@@ -12,6 +13,7 @@ import (
 	"v2ray.com/core/app/log"
 	"v2ray.com/core/app/proxyman"
 	"v2ray.com/core/common/buf"
+	"v2ray.com/core/common/errors"
 	"v2ray.com/core/common/net"
 	"v2ray.com/core/common/signal"
 	"v2ray.com/core/proxy"
@@ -239,7 +241,9 @@ func (m *Client) fetchOutput() {
 	for {
 		meta, err := reader.ReadMetadata()
 		if err != nil {
-			log.Trace(newError("failed to read metadata").Base(err))
+			if errors.Cause(err) != io.EOF {
+				log.Trace(newError("failed to read metadata").Base(err))
+			}
 			break
 		}
 

+ 2 - 2
app/proxyman/mux/session.go

@@ -97,8 +97,8 @@ func (m *SessionManager) Close() {
 	m.closed = true
 
 	for _, s := range m.sessions {
-		s.input.CloseError()
-		s.output.CloseError()
+		s.input.Close()
+		s.output.Close()
 	}
 
 	m.sessions = make(map[uint16]*Session)