From efd07167074f639aec7ca2c7d0478cf6f2d75c67 Mon Sep 17 00:00:00 2001 From: 2dust <31833384+2dust@users.noreply.github.com> Date: Tue, 7 Jan 2025 17:14:23 +0800 Subject: [PATCH] Custom configuration can use any outbound https://github.com/2dust/v2rayNG/issues/4243 --- V2rayNG/app/src/main/java/com/v2ray/ang/dto/ProfileItem.kt | 5 +++++ .../main/java/com/v2ray/ang/service/V2RayServiceManager.kt | 6 +++++- 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/V2rayNG/app/src/main/java/com/v2ray/ang/dto/ProfileItem.kt b/V2rayNG/app/src/main/java/com/v2ray/ang/dto/ProfileItem.kt index 883a3788..1a0c7807 100644 --- a/V2rayNG/app/src/main/java/com/v2ray/ang/dto/ProfileItem.kt +++ b/V2rayNG/app/src/main/java/com/v2ray/ang/dto/ProfileItem.kt @@ -1,5 +1,7 @@ package com.v2ray.ang.dto +import com.v2ray.ang.AppConfig.LOOPBACK +import com.v2ray.ang.AppConfig.PORT_SOCKS import com.v2ray.ang.AppConfig.TAG_BLOCKED import com.v2ray.ang.AppConfig.TAG_DIRECT import com.v2ray.ang.AppConfig.TAG_PROXY @@ -66,6 +68,9 @@ data class ProfileItem( } fun getServerAddressAndPort(): String { + if (server.isNullOrEmpty() && configType == EConfigType.CUSTOM) { + return "$LOOPBACK:$PORT_SOCKS" + } return Utils.getIpv6Address(server) + ":" + serverPort } diff --git a/V2rayNG/app/src/main/java/com/v2ray/ang/service/V2RayServiceManager.kt b/V2rayNG/app/src/main/java/com/v2ray/ang/service/V2RayServiceManager.kt index a008a840..b94c7a10 100644 --- a/V2rayNG/app/src/main/java/com/v2ray/ang/service/V2RayServiceManager.kt +++ b/V2rayNG/app/src/main/java/com/v2ray/ang/service/V2RayServiceManager.kt @@ -20,6 +20,7 @@ import com.v2ray.ang.AppConfig.ANG_PACKAGE import com.v2ray.ang.AppConfig.TAG_DIRECT import com.v2ray.ang.AppConfig.VPN import com.v2ray.ang.R +import com.v2ray.ang.dto.EConfigType import com.v2ray.ang.dto.ProfileItem import com.v2ray.ang.extension.toSpeedString import com.v2ray.ang.extension.toast @@ -68,7 +69,10 @@ object V2RayServiceManager { if (v2rayPoint.isRunning) return val guid = MmkvManager.getSelectServer() ?: return val config = MmkvManager.decodeServerConfig(guid) ?: return - if (!Utils.isValidUrl(config.server) && !Utils.isIpAddress(config.server)) return + if (config.configType != EConfigType.CUSTOM + && !Utils.isValidUrl(config.server) + && !Utils.isIpAddress(config.server) + ) return // val result = V2rayConfigUtil.getV2rayConfig(context, guid) // if (!result.status) return