Revert "Fix Host ignored in v2ray websocket transport"

This reverts commit aaa6702863.
This commit is contained in:
世界 2023-11-09 15:58:23 +08:00
parent f6fee53676
commit c2c3f7284f
No known key found for this signature in database
GPG key ID: CD109927C34A63C4
3 changed files with 5 additions and 11 deletions

View file

@ -50,7 +50,7 @@ func NewClientTransport(ctx context.Context, dialer N.Dialer, serverAddr M.Socks
case C.V2RayTransportTypeGRPC: case C.V2RayTransportTypeGRPC:
return NewGRPCClient(ctx, dialer, serverAddr, options.GRPCOptions, tlsConfig) return NewGRPCClient(ctx, dialer, serverAddr, options.GRPCOptions, tlsConfig)
case C.V2RayTransportTypeWebsocket: case C.V2RayTransportTypeWebsocket:
return v2raywebsocket.NewClient(ctx, dialer, serverAddr, options.WebsocketOptions, tlsConfig) return v2raywebsocket.NewClient(ctx, dialer, serverAddr, options.WebsocketOptions, tlsConfig), nil
case C.V2RayTransportTypeQUIC: case C.V2RayTransportTypeQUIC:
if tlsConfig == nil { if tlsConfig == nil {
return nil, C.ErrTLSRequired return nil, C.ErrTLSRequired

View file

@ -81,7 +81,7 @@ func NewClient(ctx context.Context, dialer N.Dialer, serverAddr M.Socksaddr, opt
uri.Path = options.Path uri.Path = options.Path
err := sHTTP.URLSetPath(&uri, options.Path) err := sHTTP.URLSetPath(&uri, options.Path)
if err != nil { if err != nil {
return nil, E.Cause(err, "parse path") return nil, E.New("failed to set path: " + err.Error())
} }
client.url = &uri client.url = &uri
return client, nil return client, nil

View file

@ -28,7 +28,7 @@ type Client struct {
earlyDataHeaderName string earlyDataHeaderName string
} }
func NewClient(ctx context.Context, dialer N.Dialer, serverAddr M.Socksaddr, options option.V2RayWebsocketOptions, tlsConfig tls.Config) (adapter.V2RayClientTransport, error) { func NewClient(ctx context.Context, dialer N.Dialer, serverAddr M.Socksaddr, options option.V2RayWebsocketOptions, tlsConfig tls.Config) adapter.V2RayClientTransport {
wsDialer := &websocket.Dialer{ wsDialer := &websocket.Dialer{
ReadBufferSize: 4 * 1024, ReadBufferSize: 4 * 1024,
WriteBufferSize: 4 * 1024, WriteBufferSize: 4 * 1024,
@ -68,17 +68,11 @@ func NewClient(ctx context.Context, dialer N.Dialer, serverAddr M.Socksaddr, opt
requestURL.Path = options.Path requestURL.Path = options.Path
err := sHTTP.URLSetPath(&requestURL, options.Path) err := sHTTP.URLSetPath(&requestURL, options.Path)
if err != nil { if err != nil {
return nil, E.Cause(err, "parse path") return nil
} }
headers := make(http.Header) headers := make(http.Header)
for key, value := range options.Headers { for key, value := range options.Headers {
headers[key] = value headers[key] = value
if key == "Host" {
if len(value) > 1 {
return nil, E.New("multiple Host headers")
}
requestURL.Host = value[0]
}
} }
return &Client{ return &Client{
wsDialer, wsDialer,
@ -87,7 +81,7 @@ func NewClient(ctx context.Context, dialer N.Dialer, serverAddr M.Socksaddr, opt
headers, headers,
options.MaxEarlyData, options.MaxEarlyData,
options.EarlyDataHeaderName, options.EarlyDataHeaderName,
}, nil }
} }
func (c *Client) DialContext(ctx context.Context) (net.Conn, error) { func (c *Client) DialContext(ctx context.Context) (net.Conn, error) {