浏览代码

check error for the first payload

Darien Raymond 8 年之前
父节点
当前提交
f2fcc90de2
共有 1 个文件被更改,包括 8 次插入2 次删除
  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)