فهرست منبع

shadowsocks log

Darien Raymond 9 سال پیش
والد
کامیت
bc822985ab
1فایلهای تغییر یافته به همراه21 افزوده شده و 5 حذف شده
  1. 21 5
      proxy/shadowsocks/client.go

+ 21 - 5
proxy/shadowsocks/client.go

@@ -2,7 +2,7 @@ package shadowsocks
 
 import (
 	"errors"
-
+	"io"
 	"sync"
 	"v2ray.com/core/app"
 	"v2ray.com/core/common/alloc"
@@ -113,11 +113,19 @@ func (this *Client) Dispatch(destination v2net.Destination, payload *alloc.Buffe
 				return
 			}
 
-			v2io.Pipe(responseReader, ray.OutboundOutput())
+			if err := v2io.Pipe(responseReader, ray.OutboundOutput()); err != nil {
+				if err != io.EOF {
+					log.Info("Shadowsocks|Client: Failed to transport all TCP response: ", err)
+				}
+			}
 		}()
 
 		bufferedWriter.SetCached(false)
-		v2io.Pipe(ray.OutboundInput(), bodyWriter)
+		if err := v2io.Pipe(ray.OutboundInput(), bodyWriter); err != nil {
+			if err != io.EOF {
+				log.Info("Shadowsocks|Client: Failed to trasnport all TCP request: ", err)
+			}
+		}
 
 		responseMutex.Lock()
 	}
@@ -135,7 +143,11 @@ func (this *Client) Dispatch(destination v2net.Destination, payload *alloc.Buffe
 				User:   user,
 			}
 
-			v2io.Pipe(reader, ray.OutboundOutput())
+			if err := v2io.Pipe(reader, ray.OutboundOutput()); err != nil {
+				if err != io.EOF {
+					log.Info("Shadowsocks|Client: Failed to transport all UDP response: ", err)
+				}
+			}
 		}()
 
 		writer := &UDPWriter{
@@ -147,7 +159,11 @@ func (this *Client) Dispatch(destination v2net.Destination, payload *alloc.Buffe
 				return errors.New("Shadowsocks|Client: Failed to write payload: " + err.Error())
 			}
 		}
-		v2io.Pipe(ray.OutboundInput(), writer)
+		if err := v2io.Pipe(ray.OutboundInput(), writer); err != nil {
+			if err != io.EOF {
+				log.Info("Shadowsocks|Client: Failed to transport all UDP request: ", err)
+			}
+		}
 
 		responseMutex.Lock()
 	}