diff --git a/transport/internet/dialer.go b/transport/internet/dialer.go index 1ec7c552b..04858faf8 100644 --- a/transport/internet/dialer.go +++ b/transport/internet/dialer.go @@ -24,10 +24,10 @@ var ( func Dial(src v2net.Address, dest v2net.Destination, settings *StreamSettings) (Connection, error) { if dest.IsTCP() { switch { - case settings.IsCapableOf(StreamConnectionTypeKCP): - return KCPDialer(src, dest) case settings.IsCapableOf(StreamConnectionTypeTCP): return TCPDialer(src, dest) + case settings.IsCapableOf(StreamConnectionTypeKCP): + return KCPDialer(src, dest) case settings.IsCapableOf(StreamConnectionTypeRawTCP): return RawTCPDialer(src, dest) } diff --git a/transport/internet/tcp_hub.go b/transport/internet/tcp_hub.go index b8d8ff31a..bd7e8afc9 100644 --- a/transport/internet/tcp_hub.go +++ b/transport/internet/tcp_hub.go @@ -34,12 +34,15 @@ type TCPHub struct { func ListenTCP(address v2net.Address, port v2net.Port, callback ConnectionHandler, settings *StreamSettings) (*TCPHub, error) { var listener Listener var err error - if settings.IsCapableOf(StreamConnectionTypeKCP) { - listener, err = KCPListenFunc(address, port) - } else if settings.IsCapableOf(StreamConnectionTypeTCP) { + switch { + case settings.IsCapableOf(StreamConnectionTypeTCP): listener, err = TCPListenFunc(address, port) - } else { + case settings.IsCapableOf(StreamConnectionTypeKCP): + listener, err = KCPListenFunc(address, port) + case settings.IsCapableOf(StreamConnectionTypeRawTCP): listener, err = RawTCPListenFunc(address, port) + default: + err = ErrUnsupportedStreamType } if err != nil {