Explorar o código

check error for the first payload

Darien Raymond %!s(int64=8) %!d(string=hai) anos
pai
achega
f2fcc90de2
Modificáronse 1 ficheiros con 8 adicións e 2 borrados
  1. 8 2
      proxy/shadowsocks/server.go

+ 8 - 2
proxy/shadowsocks/server.go

@@ -187,8 +187,14 @@ func (v *Server) handleConnection(conn internet.Connection) {
 		if err != nil {
 			return err
 		}
-		responseWriter.Write(payload)
-		bufferedWriter.SetBuffered(false)
+		if err := responseWriter.Write(payload); err != nil {
+			return err
+		}
+		payload.Release()
+
+		if err := bufferedWriter.SetBuffered(false); err != nil {
+			return err
+		}
 
 		if err := buf.PipeUntilEOF(ray.InboundOutput(), responseWriter); err != nil {
 			log.Info("Shadowsocks|Server: Failed to transport all TCP response: ", err)