From 9db86e871efd2b475642cd4e039330c22e8442ef Mon Sep 17 00:00:00 2001 From: Darien Raymond Date: Tue, 18 Apr 2017 14:18:09 +0200 Subject: [PATCH] close connection when content length unknown --- proxy/http/server.go | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/proxy/http/server.go b/proxy/http/server.go index 628753c8..22fd5d12 100644 --- a/proxy/http/server.go +++ b/proxy/http/server.go @@ -221,6 +221,8 @@ func (s *Server) handlePlainHTTP(ctx context.Context, request *http.Request, rea output := ray.InboundOutput() defer input.Close() + var result error = errWaitAnother + requestDone := signal.ExecuteAsync(func() error { request.Header.Set("Connection", "close") @@ -241,6 +243,9 @@ func (s *Server) handlePlainHTTP(ctx context.Context, request *http.Request, rea response.Header.Set("Connection", "keep-alive") response.Header.Set("Keep-Alive", "timeout=4") response.Close = false + } else { + response.Close = true + result = nil } } else { log.Trace(newError("failed to read response from ", request.Host).Base(err).AtWarning()) @@ -270,7 +275,7 @@ func (s *Server) handlePlainHTTP(ctx context.Context, request *http.Request, rea return newError("connection ends").Base(err) } - return errWaitAnother + return result } func init() {