From f2fcc90de217d8237aa766dd774def9b532b85f3 Mon Sep 17 00:00:00 2001 From: Darien Raymond Date: Fri, 6 Jan 2017 11:40:49 +0100 Subject: [PATCH] check error for the first payload --- proxy/shadowsocks/server.go | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/proxy/shadowsocks/server.go b/proxy/shadowsocks/server.go index 58038de9d..a5db27326 100644 --- a/proxy/shadowsocks/server.go +++ b/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)