Add finalMask field for WireGuard

https://github.com/2dust/v2rayNG/issues/5891
This commit is contained in:
2dust
2026-07-18 17:24:38 +08:00
parent 1e3f16b083
commit 70352cc341
3 changed files with 26 additions and 1 deletions
@@ -264,6 +264,13 @@ object CoreOutboundBuilder {
wireguard.reserved = profileItem.reserved?.takeIf { it.isNotBlank() }?.split(",")?.filter { it.isNotBlank() }?.map { it.trim().toInt() }
}
if (!profileItem.finalMask.isNullOrBlank()) {
outboundBean?.streamSettings = OutboundBean.StreamSettingsBean()
outboundBean?.streamSettings?.let {
updateOutboundFinalMask(it, profileItem)
it.network = null
}
}
return outboundBean
}
@@ -670,4 +677,16 @@ object CoreOutboundBuilder {
}
return resolvedIps.first()
}
fun updateOutboundFinalMask(streamSettings: OutboundBean.StreamSettingsBean, profileItem: ProfileItem) {
val finalMask = profileItem.finalMask
finalMask?.let {
val parsedFinalMask = JsonUtil.parseString(profileItem.finalMask)
if (parsedFinalMask != null) {
streamSettings.finalmask = parsedFinalMask
} else {
LogUtil.w("V2rayConfigManager", "Invalid finalMask JSON, keeping previously generated finalmask")
}
}
}
}
@@ -108,7 +108,7 @@ data class V2rayConfig(
}
data class StreamSettingsBean(
var network: String = AppConfig.DEFAULT_NETWORK,
var network: String? = AppConfig.DEFAULT_NETWORK,
var security: String? = null,
var tcpSettings: TcpSettingsBean? = null,
var kcpSettings: KcpSettingsBean? = null,
@@ -69,6 +69,12 @@ class ServerWireguardActivity : BaseServerActivity() {
{ state.mtu = it },
keyboardType = KeyboardType.Number
)
FormTextField(
stringResource(R.string.server_lab_final_mask),
state.finalMask,
{ state.finalMask = it }
)
}
}