From: Tobias Brunner Date: Thu, 5 Jun 2025 14:13:45 +0000 (+0200) Subject: android: Allow setting proxy settings in managed profiles X-Git-Tag: android-2.5.6^2~3 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=c7307ccc521a8d0f66c5332d2b26fee3155eba6e;p=thirdparty%2Fstrongswan.git android: Allow setting proxy settings in managed profiles --- diff --git a/src/frontends/android/app/src/main/java/org/strongswan/android/data/ManagedVpnProfile.java b/src/frontends/android/app/src/main/java/org/strongswan/android/data/ManagedVpnProfile.java index 30943aa6be..47e85a5ca9 100644 --- a/src/frontends/android/app/src/main/java/org/strongswan/android/data/ManagedVpnProfile.java +++ b/src/frontends/android/app/src/main/java/org/strongswan/android/data/ManagedVpnProfile.java @@ -83,6 +83,14 @@ public class ManagedVpnProfile extends VpnProfile setIncludedSubnets(getString(splitTunneling, VpnProfileDataSource.KEY_INCLUDED_SUBNETS)); } + final Bundle proxyServer = bundle.getBundle(VpnProfileDataSource.KEY_PROXY_SERVER); + if (proxyServer != null) + { + setProxyHost(getString(proxyServer, VpnProfileDataSource.KEY_PROXY_HOST)); + setProxyPort(getInt(proxyServer, VpnProfileDataSource.KEY_PROXY_PORT, 1, 65_535)); + setProxyExclusions(getString(proxyServer, VpnProfileDataSource.KEY_PROXY_EXCLUSIONS)); + } + setSplitTunneling(splitFlags); setFlags(flags); } diff --git a/src/frontends/android/app/src/main/java/org/strongswan/android/data/VpnProfileDataSource.java b/src/frontends/android/app/src/main/java/org/strongswan/android/data/VpnProfileDataSource.java index 541d2eb9a7..b5289337c7 100644 --- a/src/frontends/android/app/src/main/java/org/strongswan/android/data/VpnProfileDataSource.java +++ b/src/frontends/android/app/src/main/java/org/strongswan/android/data/VpnProfileDataSource.java @@ -50,6 +50,7 @@ public interface VpnProfileDataSource String KEY_IKE_PROPOSAL = "ike_proposal"; String KEY_ESP_PROPOSAL = "esp_proposal"; String KEY_DNS_SERVERS = "dns_servers"; + String KEY_PROXY_SERVER = "proxy_server"; String KEY_PROXY_HOST = "proxy_host"; String KEY_PROXY_PORT = "proxy_port"; String KEY_PROXY_EXCLUSIONS = "proxy_exclusions"; diff --git a/src/frontends/android/app/src/main/res/values-de/strings_managed_configuration.xml b/src/frontends/android/app/src/main/res/values-de/strings_managed_configuration.xml index 74e59cfe7d..c7d516011b 100644 --- a/src/frontends/android/app/src/main/res/values-de/strings_managed_configuration.xml +++ b/src/frontends/android/app/src/main/res/values-de/strings_managed_configuration.xml @@ -108,4 +108,13 @@ @string/profile_split_tunnelingv6_title Specifies whether to block IPv6 traffic that\'s not destined for the VPN. Forces all IPv6 traffic via VPN (traffic that does not match the negotiated traffic selector is then just dropped). Thus this is basically equivalent to including ::/0 in subnets + + @string/profile_proxy_server_label + @string/profile_proxy_server_intro + @string/profile_proxy_host_label + @string/profile_proxy_host_hint + @string/profile_proxy_port_label + @string/profile_proxy_port_hint + @string/profile_proxy_exclusions_label + @string/profile_proxy_exclusions_hint diff --git a/src/frontends/android/app/src/main/res/values-pl/strings_managed_configuration.xml b/src/frontends/android/app/src/main/res/values-pl/strings_managed_configuration.xml index 74e59cfe7d..c7d516011b 100644 --- a/src/frontends/android/app/src/main/res/values-pl/strings_managed_configuration.xml +++ b/src/frontends/android/app/src/main/res/values-pl/strings_managed_configuration.xml @@ -108,4 +108,13 @@ @string/profile_split_tunnelingv6_title Specifies whether to block IPv6 traffic that\'s not destined for the VPN. Forces all IPv6 traffic via VPN (traffic that does not match the negotiated traffic selector is then just dropped). Thus this is basically equivalent to including ::/0 in subnets + + @string/profile_proxy_server_label + @string/profile_proxy_server_intro + @string/profile_proxy_host_label + @string/profile_proxy_host_hint + @string/profile_proxy_port_label + @string/profile_proxy_port_hint + @string/profile_proxy_exclusions_label + @string/profile_proxy_exclusions_hint diff --git a/src/frontends/android/app/src/main/res/values-ru/strings_managed_configuration.xml b/src/frontends/android/app/src/main/res/values-ru/strings_managed_configuration.xml index 74e59cfe7d..c7d516011b 100644 --- a/src/frontends/android/app/src/main/res/values-ru/strings_managed_configuration.xml +++ b/src/frontends/android/app/src/main/res/values-ru/strings_managed_configuration.xml @@ -108,4 +108,13 @@ @string/profile_split_tunnelingv6_title Specifies whether to block IPv6 traffic that\'s not destined for the VPN. Forces all IPv6 traffic via VPN (traffic that does not match the negotiated traffic selector is then just dropped). Thus this is basically equivalent to including ::/0 in subnets + + @string/profile_proxy_server_label + @string/profile_proxy_server_intro + @string/profile_proxy_host_label + @string/profile_proxy_host_hint + @string/profile_proxy_port_label + @string/profile_proxy_port_hint + @string/profile_proxy_exclusions_label + @string/profile_proxy_exclusions_hint diff --git a/src/frontends/android/app/src/main/res/values-uk/strings_managed_configuration.xml b/src/frontends/android/app/src/main/res/values-uk/strings_managed_configuration.xml index 74e59cfe7d..c7d516011b 100644 --- a/src/frontends/android/app/src/main/res/values-uk/strings_managed_configuration.xml +++ b/src/frontends/android/app/src/main/res/values-uk/strings_managed_configuration.xml @@ -108,4 +108,13 @@ @string/profile_split_tunnelingv6_title Specifies whether to block IPv6 traffic that\'s not destined for the VPN. Forces all IPv6 traffic via VPN (traffic that does not match the negotiated traffic selector is then just dropped). Thus this is basically equivalent to including ::/0 in subnets + + @string/profile_proxy_server_label + @string/profile_proxy_server_intro + @string/profile_proxy_host_label + @string/profile_proxy_host_hint + @string/profile_proxy_port_label + @string/profile_proxy_port_hint + @string/profile_proxy_exclusions_label + @string/profile_proxy_exclusions_hint diff --git a/src/frontends/android/app/src/main/res/values-zh-rCN/strings_managed_configuration.xml b/src/frontends/android/app/src/main/res/values-zh-rCN/strings_managed_configuration.xml index 74e59cfe7d..c7d516011b 100644 --- a/src/frontends/android/app/src/main/res/values-zh-rCN/strings_managed_configuration.xml +++ b/src/frontends/android/app/src/main/res/values-zh-rCN/strings_managed_configuration.xml @@ -108,4 +108,13 @@ @string/profile_split_tunnelingv6_title Specifies whether to block IPv6 traffic that\'s not destined for the VPN. Forces all IPv6 traffic via VPN (traffic that does not match the negotiated traffic selector is then just dropped). Thus this is basically equivalent to including ::/0 in subnets + + @string/profile_proxy_server_label + @string/profile_proxy_server_intro + @string/profile_proxy_host_label + @string/profile_proxy_host_hint + @string/profile_proxy_port_label + @string/profile_proxy_port_hint + @string/profile_proxy_exclusions_label + @string/profile_proxy_exclusions_hint diff --git a/src/frontends/android/app/src/main/res/values-zh-rTW/strings_managed_configuration.xml b/src/frontends/android/app/src/main/res/values-zh-rTW/strings_managed_configuration.xml index 74e59cfe7d..c7d516011b 100644 --- a/src/frontends/android/app/src/main/res/values-zh-rTW/strings_managed_configuration.xml +++ b/src/frontends/android/app/src/main/res/values-zh-rTW/strings_managed_configuration.xml @@ -108,4 +108,13 @@ @string/profile_split_tunnelingv6_title Specifies whether to block IPv6 traffic that\'s not destined for the VPN. Forces all IPv6 traffic via VPN (traffic that does not match the negotiated traffic selector is then just dropped). Thus this is basically equivalent to including ::/0 in subnets + + @string/profile_proxy_server_label + @string/profile_proxy_server_intro + @string/profile_proxy_host_label + @string/profile_proxy_host_hint + @string/profile_proxy_port_label + @string/profile_proxy_port_hint + @string/profile_proxy_exclusions_label + @string/profile_proxy_exclusions_hint diff --git a/src/frontends/android/app/src/main/res/values/strings_managed_configuration.xml b/src/frontends/android/app/src/main/res/values/strings_managed_configuration.xml index 74e59cfe7d..04922033d8 100644 --- a/src/frontends/android/app/src/main/res/values/strings_managed_configuration.xml +++ b/src/frontends/android/app/src/main/res/values/strings_managed_configuration.xml @@ -1,5 +1,6 @@ + @string/profile_proxy_server_label + @string/profile_proxy_server_intro + @string/profile_proxy_host_label + @string/profile_proxy_host_hint + @string/profile_proxy_port_label + @string/profile_proxy_port_hint + @string/profile_proxy_exclusions_label + @string/profile_proxy_exclusions_hint diff --git a/src/frontends/android/app/src/main/res/xml/managed_configuration.xml b/src/frontends/android/app/src/main/res/xml/managed_configuration.xml index e86ad721ed..8c2a70eb8f 100644 --- a/src/frontends/android/app/src/main/res/xml/managed_configuration.xml +++ b/src/frontends/android/app/src/main/res/xml/managed_configuration.xml @@ -1,5 +1,6 @@