Fix http response check

Co-authored-by: armv9 <48624112+arm64v8a@users.noreply.github.com>
This commit is contained in:
世界 2023-04-21 17:44:05 +08:00
parent bbdd495ed5
commit 1f65ff88b5
No known key found for this signature in database
GPG Key ID: CD109927C34A63C4
2 changed files with 5 additions and 0 deletions

View File

@ -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)
}

View File

@ -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)