diff --git a/.golangci.yml b/.golangci.yml index aefd468..39c8e3f 100644 --- a/.golangci.yml +++ b/.golangci.yml @@ -48,7 +48,6 @@ linters: - unconvert - unparam - gci - - bodyclose - gosec - asciicheck - prealloc diff --git a/pkg/util/vhost/http.go b/pkg/util/vhost/http.go index f2f0850..846fdca 100644 --- a/pkg/util/vhost/http.go +++ b/pkg/util/vhost/http.go @@ -251,7 +251,7 @@ func (rp *HTTPReverseProxy) connectHandler(rw http.ResponseWriter, req *http.Req remote, err := rp.CreateConnection(domain, url, routeByHTTPUser, remoteAddr) if err != nil { - http.Error(rw, "Failed", http.StatusBadRequest) + _ = notFoundResponse().Write(client) client.Close() return } diff --git a/pkg/util/vhost/resource.go b/pkg/util/vhost/resource.go index 14f6b2a..65bdbcb 100644 --- a/pkg/util/vhost/resource.go +++ b/pkg/util/vhost/resource.go @@ -72,14 +72,16 @@ func notFoundResponse() *http.Response { header.Set("server", "frp/"+version.Full()) header.Set("Content-Type", "text/html") + content := getNotFoundPageContent() res := &http.Response{ - Status: "Not Found", - StatusCode: 404, - Proto: "HTTP/1.0", - ProtoMajor: 1, - ProtoMinor: 0, - Header: header, - Body: io.NopCloser(bytes.NewReader(getNotFoundPageContent())), + Status: "Not Found", + StatusCode: 404, + Proto: "HTTP/1.1", + ProtoMajor: 1, + ProtoMinor: 1, + Header: header, + Body: io.NopCloser(bytes.NewReader(content)), + ContentLength: int64(len(content)), } return res }