add relay proxy
This commit is contained in:
@ -52,8 +52,13 @@ func (c *httpConnector) Connect(ctx context.Context, conn net.Conn, network, add
|
||||
|
||||
switch network {
|
||||
case "tcp", "tcp4", "tcp6":
|
||||
if _, ok := conn.(net.PacketConn); ok {
|
||||
err := fmt.Errorf("tcp over udp is unsupported")
|
||||
c.logger.Error(err)
|
||||
return nil, err
|
||||
}
|
||||
default:
|
||||
err := fmt.Errorf("network %s unsupported, should be tcp, tcp4 or tcp6", network)
|
||||
err := fmt.Errorf("network %s is unsupported", network)
|
||||
c.logger.Error(err)
|
||||
return nil, err
|
||||
}
|
||||
|
@ -51,8 +51,13 @@ func (c *socks4Connector) Connect(ctx context.Context, conn net.Conn, network, a
|
||||
|
||||
switch network {
|
||||
case "tcp", "tcp4", "tcp6":
|
||||
if _, ok := conn.(net.PacketConn); ok {
|
||||
err := fmt.Errorf("tcp over udp is unsupported")
|
||||
c.logger.Error(err)
|
||||
return nil, err
|
||||
}
|
||||
default:
|
||||
err := fmt.Errorf("network %s unsupported, should be tcp, tcp4 or tcp6", network)
|
||||
err := fmt.Errorf("network %s is unsupported", network)
|
||||
c.logger.Error(err)
|
||||
return nil, err
|
||||
}
|
||||
|
@ -97,8 +97,13 @@ func (c *socks5Connector) Connect(ctx context.Context, conn net.Conn, network, a
|
||||
case "udp", "udp4", "udp6":
|
||||
return c.connectUDP(ctx, conn, network, address)
|
||||
case "tcp", "tcp4", "tcp6":
|
||||
if _, ok := conn.(net.PacketConn); ok {
|
||||
err := fmt.Errorf("tcp over udp is unsupported")
|
||||
c.logger.Error(err)
|
||||
return nil, err
|
||||
}
|
||||
default:
|
||||
err := fmt.Errorf("network %s unsupported", network)
|
||||
err := fmt.Errorf("network %s is unsupported", network)
|
||||
c.logger.Error(err)
|
||||
return nil, err
|
||||
}
|
||||
|
@ -52,10 +52,15 @@ func (c *ssConnector) Connect(ctx context.Context, conn net.Conn, network, addre
|
||||
|
||||
switch network {
|
||||
case "tcp", "tcp4", "tcp6":
|
||||
if _, ok := conn.(net.PacketConn); ok {
|
||||
err := fmt.Errorf("tcp over udp is unsupported")
|
||||
c.logger.Error(err)
|
||||
return nil, err
|
||||
}
|
||||
case "udp", "udp4", "udp6":
|
||||
return c.connectUDP(ctx, conn, network, address)
|
||||
default:
|
||||
err := fmt.Errorf("network %s unsupported", network)
|
||||
err := fmt.Errorf("network %s is unsupported", network)
|
||||
c.logger.Error(err)
|
||||
return nil, err
|
||||
}
|
||||
@ -99,7 +104,7 @@ func (c *ssConnector) Connect(ctx context.Context, conn net.Conn, network, addre
|
||||
}
|
||||
|
||||
func (c *ssConnector) connectUDP(ctx context.Context, conn net.Conn, network, address string) (net.Conn, error) {
|
||||
if c.md.enableUDP {
|
||||
if !c.md.enableUDP {
|
||||
err := errors.New("UDP relay is disabled")
|
||||
c.logger.Error(err)
|
||||
return nil, err
|
||||
|
@ -22,7 +22,7 @@ func (c *ssConnector) parseMetadata(md md.Metadata) (err error) {
|
||||
password = "password"
|
||||
key = "key"
|
||||
connectTimeout = "timeout"
|
||||
noDelay = "noDelay"
|
||||
noDelay = "nodelay"
|
||||
enableUDP = "udp" // enable UDP relay
|
||||
udpBufferSize = "udpBufferSize" // udp buffer size
|
||||
)
|
||||
|
Reference in New Issue
Block a user