diff --git a/http.go b/http.go index 166e555..f839d2f 100644 --- a/http.go +++ b/http.go @@ -94,16 +94,17 @@ func (h *httpHandler) Handle(conn net.Conn) { } if Debug { - log.Logf("[http] %s %s - %s %s", req.Method, conn.RemoteAddr(), req.Host, req.Proto) dump, _ := httputil.DumpRequest(req, false) - log.Logf(string(dump)) + log.Logf("[http] %s -> %s\n%s", conn.RemoteAddr(), req.Host, string(dump)) } - if req.Method == "PRI" && req.ProtoMajor == 2 { - log.Logf("[http] %s <- %s : Not an HTTP2 server", conn.RemoteAddr(), req.Host) + if req.Method == "PRI" || (req.Method != http.MethodConnect && req.URL.Scheme != "http") { resp := "HTTP/1.1 400 Bad Request\r\n" + "Proxy-Agent: gost/" + Version + "\r\n\r\n" conn.Write([]byte(resp)) + if Debug { + log.Logf("[http] %s <- %s\n%s", conn.RemoteAddr(), req.Host, resp) + } return }