Explorar o código

Don't random pick if there is only one vnext or user

V2Ray %!s(int64=10) %!d(string=hai) anos
pai
achega
bd35793cf8
Modificáronse 1 ficheiros con 9 adicións e 2 borrados
  1. 9 2
      proxy/vmess/vmessout.go

+ 9 - 2
proxy/vmess/vmessout.go

@@ -44,13 +44,20 @@ func (handler *VMessOutboundHandler) pickVNext() (v2net.Destination, user.User)
 	if vNextLen == 0 {
 		panic("VMessOut: Zero vNext is configured.")
 	}
-	vNextIndex := mrand.Intn(vNextLen)
+	vNextIndex := 0
+	if vNextLen > 1 {
+		vNextIndex = mrand.Intn(vNextLen)
+	}
+
 	vNext := handler.vNextList[vNextIndex]
 	vNextUserLen := len(vNext.Users)
 	if vNextUserLen == 0 {
 		panic("VMessOut: Zero User account.")
 	}
-	vNextUserIndex := mrand.Intn(vNextUserLen)
+	vNextUserIndex := 0
+	if vNextUserLen > 1 {
+		vNextUserIndex = mrand.Intn(vNextUserLen)
+	}
 	vNextUser := vNext.Users[vNextUserIndex]
 	return vNext.Destination, vNextUser
 }