Pārlūkot izejas kodu

adjust connection type priority

v2ray 9 gadi atpakaļ
vecāks
revīzija
103c721626
2 mainītis faili ar 9 papildinājumiem un 6 dzēšanām
  1. 2 2
      transport/internet/dialer.go
  2. 7 4
      transport/internet/tcp_hub.go

+ 2 - 2
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)
 		}

+ 7 - 4
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 {