diff --git a/transport/v2raywebsocket/client.go b/transport/v2raywebsocket/client.go index 18fca276..7a827881 100644 --- a/transport/v2raywebsocket/client.go +++ b/transport/v2raywebsocket/client.go @@ -42,11 +42,19 @@ func NewClient(ctx context.Context, dialer N.Dialer, serverAddr M.Socksaddr, opt if err != nil { return nil, err } - return tls.ClientHandshake(ctx, conn, tlsConfig) + tlsConn, err := tls.ClientHandshake(ctx, conn, tlsConfig) + if err != nil { + return nil, err + } + return &deadConn{tlsConn}, nil } } else { wsDialer.NetDialContext = func(ctx context.Context, network, addr string) (net.Conn, error) { - return dialer.DialContext(ctx, network, M.ParseSocksaddr(addr)) + conn, err := dialer.DialContext(ctx, network, M.ParseSocksaddr(addr)) + if err != nil { + return nil, err + } + return &deadConn{conn}, nil } } var uri url.URL diff --git a/transport/v2raywebsocket/deadline.go b/transport/v2raywebsocket/deadline.go new file mode 100644 index 00000000..195565aa --- /dev/null +++ b/transport/v2raywebsocket/deadline.go @@ -0,0 +1,22 @@ +package v2raywebsocket + +import ( + "net" + "time" +) + +type deadConn struct { + net.Conn +} + +func (c *deadConn) SetDeadline(t time.Time) error { + return nil +} + +func (c *deadConn) SetReadDeadline(t time.Time) error { + return nil +} + +func (c *deadConn) SetWriteDeadline(t time.Time) error { + return nil +}