Fix: don't close connection on status 100 Continue
and header Proxy-Connection: Keep-Alive
(#294)
This commit is contained in:
parent
60fdd82e2b
commit
112b3e5a6c
1 changed files with 10 additions and 9 deletions
|
@ -37,7 +37,16 @@ func (t *Tunnel) handleHTTP(request *adapters.HTTPAdapter, outbound net.Conn) {
|
||||||
break
|
break
|
||||||
}
|
}
|
||||||
adapters.RemoveHopByHopHeaders(resp.Header)
|
adapters.RemoveHopByHopHeaders(resp.Header)
|
||||||
if resp.ContentLength >= 0 {
|
|
||||||
|
if resp.StatusCode == http.StatusContinue {
|
||||||
|
err = resp.Write(request)
|
||||||
|
if err != nil {
|
||||||
|
break
|
||||||
|
}
|
||||||
|
goto handleResponse
|
||||||
|
}
|
||||||
|
|
||||||
|
if keepAlive || resp.ContentLength >= 0 {
|
||||||
resp.Header.Set("Proxy-Connection", "keep-alive")
|
resp.Header.Set("Proxy-Connection", "keep-alive")
|
||||||
resp.Header.Set("Connection", "keep-alive")
|
resp.Header.Set("Connection", "keep-alive")
|
||||||
resp.Header.Set("Keep-Alive", "timeout=4")
|
resp.Header.Set("Keep-Alive", "timeout=4")
|
||||||
|
@ -50,14 +59,6 @@ func (t *Tunnel) handleHTTP(request *adapters.HTTPAdapter, outbound net.Conn) {
|
||||||
break
|
break
|
||||||
}
|
}
|
||||||
|
|
||||||
if !keepAlive {
|
|
||||||
break
|
|
||||||
}
|
|
||||||
|
|
||||||
if resp.StatusCode == http.StatusContinue {
|
|
||||||
goto handleResponse
|
|
||||||
}
|
|
||||||
|
|
||||||
req, err = http.ReadRequest(inboundReeder)
|
req, err = http.ReadRequest(inboundReeder)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
break
|
break
|
||||||
|
|
Loading…
Reference in a new issue