From 1f65ff88b59be08fe7e5b50094c65d2b17806485 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E4=B8=96=E7=95=8C?= Date: Fri, 21 Apr 2023 17:44:05 +0800 Subject: [PATCH] Fix http response check Co-authored-by: armv9 <48624112+arm64v8a@users.noreply.github.com> --- transport/v2raygrpclite/client.go | 4 ++++ transport/v2rayhttp/client.go | 1 + 2 files changed, 5 insertions(+) diff --git a/transport/v2raygrpclite/client.go b/transport/v2raygrpclite/client.go index acf83abc..55f6a99f 100644 --- a/transport/v2raygrpclite/client.go +++ b/transport/v2raygrpclite/client.go @@ -12,6 +12,7 @@ import ( "github.com/sagernet/sing-box/common/tls" "github.com/sagernet/sing-box/option" "github.com/sagernet/sing-box/transport/v2rayhttp" + E "github.com/sagernet/sing/common/exceptions" M "github.com/sagernet/sing/common/metadata" N "github.com/sagernet/sing/common/network" @@ -94,6 +95,9 @@ func (c *Client) DialContext(ctx context.Context) (net.Conn, error) { response, err := c.transport.RoundTrip(request) if err == nil { conn.setup(response.Body, nil) + } else if response.StatusCode != 200 { + response.Body.Close() + conn.setup(nil, E.New("unexpected status: ", response.StatusCode, " ", response.Status)) } else { conn.setup(nil, err) } diff --git a/transport/v2rayhttp/client.go b/transport/v2rayhttp/client.go index 80ff13db..08bb0e87 100644 --- a/transport/v2rayhttp/client.go +++ b/transport/v2rayhttp/client.go @@ -145,6 +145,7 @@ func (c *Client) dialHTTP2(ctx context.Context) (net.Conn, error) { if err != nil { conn.setup(nil, err) } else if response.StatusCode != 200 { + response.Body.Close() conn.setup(nil, E.New("unexpected status: ", response.StatusCode, " ", response.Status)) } else { conn.setup(response.Body, nil)