From 1e3f16b0837802a144c293ccd5d94da98c1f6ff5 Mon Sep 17 00:00:00 2001 From: 2dust <31833384+2dust@users.noreply.github.com> Date: Sat, 18 Jul 2026 16:57:59 +0800 Subject: [PATCH] Fix bugs for server --- .../v2ray/ang/ui/server/BaseServerActivity.kt | 28 ++++++++++------- .../v2ray/ang/ui/server/ServerHttpActivity.kt | 10 +----- .../ang/ui/server/ServerHysteria2Activity.kt | 31 +++++++++++++------ .../ang/ui/server/ServerSocksActivity.kt | 10 +----- .../ang/ui/server/ServerWireguardActivity.kt | 10 +----- 5 files changed, 41 insertions(+), 48 deletions(-) diff --git a/V2rayNG/app/src/main/java/com/v2ray/ang/ui/server/BaseServerActivity.kt b/V2rayNG/app/src/main/java/com/v2ray/ang/ui/server/BaseServerActivity.kt index 32ded58e7..c6fe92051 100644 --- a/V2rayNG/app/src/main/java/com/v2ray/ang/ui/server/BaseServerActivity.kt +++ b/V2rayNG/app/src/main/java/com/v2ray/ang/ui/server/BaseServerActivity.kt @@ -373,20 +373,24 @@ abstract class BaseServerActivity : BaseComponentActivity() { protected open fun validateProtocolConfig(config: ProfileItem): Boolean = true protected open fun validateCommonConfig(config: ProfileItem): Boolean { - if ( - config.configType != EConfigType.SOCKS && - config.configType != EConfigType.HTTP && - config.password.isNullOrBlank() - ) { - val message = when (config.configType) { - EConfigType.TROJAN, - EConfigType.SHADOWSOCKS, - EConfigType.HYSTERIA2 -> R.string.server_lab_id3 - else -> R.string.server_lab_id + + if (config.password.isNullOrBlank()) { + if (config.configType == EConfigType.VMESS || + config.configType == EConfigType.VLESS + ) { + toast(R.string.server_lab_id) + return false + } + + if (config.configType == EConfigType.TROJAN || + config.configType == EConfigType.SHADOWSOCKS || + config.configType == EConfigType.HYSTERIA2 + ) { + toast(R.string.server_lab_id3) + return false } - toast(message) - return false } + if ( config.configType == EConfigType.TROJAN && config.security.isNullOrBlank() diff --git a/V2rayNG/app/src/main/java/com/v2ray/ang/ui/server/ServerHttpActivity.kt b/V2rayNG/app/src/main/java/com/v2ray/ang/ui/server/ServerHttpActivity.kt index 69934af1a..3f86b6baf 100644 --- a/V2rayNG/app/src/main/java/com/v2ray/ang/ui/server/ServerHttpActivity.kt +++ b/V2rayNG/app/src/main/java/com/v2ray/ang/ui/server/ServerHttpActivity.kt @@ -31,15 +31,7 @@ class ServerHttpActivity : BaseServerActivity() { ) { item { CommonBasicFields(uiState) } item { HttpProtocolFields(uiState) } - item { CommonNetworkFields(uiState, options) } - item { - CommonStreamSecurityFields( - state = uiState, - options = options, - scope = scope, - buildProfileItem = { uiState.toProfileItem(initialConfig) } - ) - } + } } diff --git a/V2rayNG/app/src/main/java/com/v2ray/ang/ui/server/ServerHysteria2Activity.kt b/V2rayNG/app/src/main/java/com/v2ray/ang/ui/server/ServerHysteria2Activity.kt index 6d23480e0..bf70c8896 100644 --- a/V2rayNG/app/src/main/java/com/v2ray/ang/ui/server/ServerHysteria2Activity.kt +++ b/V2rayNG/app/src/main/java/com/v2ray/ang/ui/server/ServerHysteria2Activity.kt @@ -4,8 +4,10 @@ import androidx.compose.runtime.Composable import androidx.compose.runtime.rememberCoroutineScope import androidx.compose.runtime.saveable.rememberSaveable import androidx.compose.ui.res.stringResource +import com.v2ray.ang.AppConfig import com.v2ray.ang.R import com.v2ray.ang.compose.FormTextField +import com.v2ray.ang.compose.SettingsSwitchItem import com.v2ray.ang.dto.entities.ProfileItem import com.v2ray.ang.enums.EConfigType import com.v2ray.ang.extension.toast @@ -33,15 +35,7 @@ class ServerHysteria2Activity : BaseServerActivity() { ) { item { CommonBasicFields(uiState, showPort = false) } item { Hysteria2ProtocolFields(uiState) } - item { CommonNetworkFields(uiState, options) } - item { - CommonStreamSecurityFields( - state = uiState, - options = options, - scope = scope, - buildProfileItem = { uiState.toProfileItem(initialConfig) } - ) - } + } } @@ -50,6 +44,9 @@ class ServerHysteria2Activity : BaseServerActivity() { toast(R.string.server_lab_id3) return false } + if (config.security.isNullOrBlank()) { + config.security = AppConfig.TLS + } return true } @@ -85,6 +82,22 @@ class ServerHysteria2Activity : BaseServerActivity() { state.bandwidthUp, { state.bandwidthUp = it } ) + + SettingsSwitchItem( + title = stringResource(R.string.server_lab_allow_insecure), + checked = state.allowInsecure, + onCheckedChange = { state.allowInsecure = it } + ) + FormTextField( + stringResource(R.string.server_lab_sni), + state.sni, + { state.sni = it } + ) + FormTextField( + stringResource(R.string.server_lab_pinned_ca256), + state.pinnedCA256, + { state.pinnedCA256 = it } + ) } } diff --git a/V2rayNG/app/src/main/java/com/v2ray/ang/ui/server/ServerSocksActivity.kt b/V2rayNG/app/src/main/java/com/v2ray/ang/ui/server/ServerSocksActivity.kt index f51df27bb..ab3abd24b 100644 --- a/V2rayNG/app/src/main/java/com/v2ray/ang/ui/server/ServerSocksActivity.kt +++ b/V2rayNG/app/src/main/java/com/v2ray/ang/ui/server/ServerSocksActivity.kt @@ -31,15 +31,7 @@ class ServerSocksActivity : BaseServerActivity() { ) { item { CommonBasicFields(uiState) } item { SocksProtocolFields(uiState) } - item { CommonNetworkFields(uiState, options) } - item { - CommonStreamSecurityFields( - state = uiState, - options = options, - scope = scope, - buildProfileItem = { uiState.toProfileItem(initialConfig) } - ) - } + } } diff --git a/V2rayNG/app/src/main/java/com/v2ray/ang/ui/server/ServerWireguardActivity.kt b/V2rayNG/app/src/main/java/com/v2ray/ang/ui/server/ServerWireguardActivity.kt index f83eff082..a198df4a3 100644 --- a/V2rayNG/app/src/main/java/com/v2ray/ang/ui/server/ServerWireguardActivity.kt +++ b/V2rayNG/app/src/main/java/com/v2ray/ang/ui/server/ServerWireguardActivity.kt @@ -32,15 +32,7 @@ class ServerWireguardActivity : BaseServerActivity() { ) { item { CommonBasicFields(uiState) } item { WireguardProtocolFields(uiState) } - item { CommonNetworkFields(uiState, options) } - item { - CommonStreamSecurityFields( - state = uiState, - options = options, - scope = scope, - buildProfileItem = { uiState.toProfileItem(initialConfig) } - ) - } + } }