Selaa lähdekoodia

check error for the first payload

Darien Raymond 8 vuotta sitten
vanhempi
commit
f2fcc90de2
1 muutettua tiedostoa jossa 8 lisäystä ja 2 poistoa
  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)