Fix: some HTTP proxy request broken

This commit is contained in:
Dreamacro
2021-03-10 16:23:19 +08:00
parent 5acdd72a1d
commit f7f97ef625
2 changed files with 19 additions and 1 deletions

View File

@ -20,11 +20,12 @@ import (
func handleHTTP(ctx *context.HTTPContext, outbound net.Conn) {
req := ctx.Request()
conn := ctx.Conn()
host := req.Host
inboundReader := bufio.NewReader(conn)
outboundReader := bufio.NewReader(outbound)
inbound.RemoveExtraHTTPHostPort(req)
host := req.Host
for {
keepAlive := strings.TrimSpace(strings.ToLower(req.Header.Get("Proxy-Connection"))) == "keep-alive"
@ -79,6 +80,7 @@ func handleHTTP(ctx *context.HTTPContext, outbound net.Conn) {
break
}
inbound.RemoveExtraHTTPHostPort(req)
// Sometimes firefox just open a socket to process multiple domains in HTTP
// The temporary solution is close connection when encountering different HOST
if req.Host != host {