]> git.ipfire.org Git - thirdparty/strongswan.git/commitdiff
android: Add properties to VPN profiles for proxy server configuration
authorTobias Brunner <tobias@strongswan.org>
Thu, 5 Jun 2025 13:15:04 +0000 (15:15 +0200)
committerTobias Brunner <tobias@strongswan.org>
Fri, 27 Jun 2025 06:57:45 +0000 (08:57 +0200)
src/frontends/android/app/src/main/java/org/strongswan/android/data/DatabaseHelper.java
src/frontends/android/app/src/main/java/org/strongswan/android/data/VpnProfile.java
src/frontends/android/app/src/main/java/org/strongswan/android/data/VpnProfileDataSource.java
src/frontends/android/app/src/main/java/org/strongswan/android/data/VpnProfileSqlDataSource.java

index 1a6b7e1745f928b476a613b8ce011e3685ecee32..7feccbdfe197b4554a246f30deb35710a69ab663 100644 (file)
@@ -1,6 +1,6 @@
 /*
  * Copyright (C) 2023 Relution GmbH
- * Copyright (C) 2012-2024 Tobias Brunner
+ * Copyright (C) 2012-2025 Tobias Brunner
  * Copyright (C) 2012 Giuliano Grassi
  * Copyright (C) 2012 Ralf Sager
  *
@@ -67,6 +67,9 @@ public class DatabaseHelper extends SQLiteOpenHelper
                new DbColumn(VpnProfileDataSource.KEY_IKE_PROPOSAL, "TEXT", 15),
                new DbColumn(VpnProfileDataSource.KEY_ESP_PROPOSAL, "TEXT", 15),
                new DbColumn(VpnProfileDataSource.KEY_DNS_SERVERS, "TEXT", 17),
+               new DbColumn(VpnProfileDataSource.KEY_PROXY_HOST, "TEXT", 19),
+               new DbColumn(VpnProfileDataSource.KEY_PROXY_PORT, "INTEGER", 19),
+               new DbColumn(VpnProfileDataSource.KEY_PROXY_EXCLUSIONS, "TEXT", 19),
        });
 
        public static final DbTable TABLE_TRUSTED_CERTIFICATE = new DbTable(TABLE_NAME_TRUSTED_CERTIFICATE, 18, new DbColumn[]{
@@ -84,7 +87,7 @@ public class DatabaseHelper extends SQLiteOpenHelper
                new DbColumn(ManagedUserCertificate.KEY_PASSWORD, "TEXT", 18),
        });
 
-       private static final int DATABASE_VERSION = 18;
+       private static final int DATABASE_VERSION = 19;
 
        private static final Set<DbTable> TABLES;
 
index e3ce9d4b845ef188fbaea7fff00dee9327fe2714..52464eb127790609176d0a01f2ed4fdbba084fd7 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2019 Tobias Brunner
+ * Copyright (C) 2012-2025 Tobias Brunner
  * Copyright (C) 2012 Giuliano Grassi
  * Copyright (C) 2012 Ralf Sager
  *
@@ -42,8 +42,8 @@ public class VpnProfile implements Cloneable
 
        private String mName, mGateway, mUsername, mPassword, mCertificate, mUserCertificate;
        private String mRemoteId, mLocalId, mExcludedSubnets, mIncludedSubnets, mSelectedApps;
-       private String mIkeProposal, mEspProposal, mDnsServers;
-       private Integer mMTU, mPort, mSplitTunneling, mNATKeepAlive, mFlags;
+       private String mIkeProposal, mEspProposal, mDnsServers, mProxyHost, mProxyExclusions;
+       private Integer mMTU, mPort, mProxyPort, mSplitTunneling, mNATKeepAlive, mFlags;
        private SelectedAppsHandling mSelectedAppsHandling = SelectedAppsHandling.SELECTED_APPS_DISABLE;
        private VpnType mVpnType;
        private UUID mUUID;
@@ -313,6 +313,36 @@ public class VpnProfile implements Cloneable
                return mSelectedAppsHandling;
        }
 
+       public String getProxyHost()
+       {
+               return mProxyHost;
+       }
+
+       public void setProxyHost(String proxy)
+       {
+               this.mProxyHost = proxy;
+       }
+
+       public Integer getProxyPort()
+       {
+               return mProxyPort;
+       }
+
+       public void setProxyPort(Integer port)
+       {
+               this.mProxyPort = port;
+       }
+
+       public String getProxyExclusions()
+       {
+               return mProxyExclusions;
+       }
+
+       public void setProxyExclusions(String exclusions)
+       {
+               this.mProxyExclusions = exclusions;
+       }
+
        public Integer getSplitTunneling()
        {
                return mSplitTunneling;
index f95ce4734d76ed4595861395b3d9425406dcd93c..541d2eb9a767b596717bc06f5002ca10b85bad1a 100644 (file)
@@ -50,6 +50,9 @@ public interface VpnProfileDataSource
        String KEY_IKE_PROPOSAL = "ike_proposal";
        String KEY_ESP_PROPOSAL = "esp_proposal";
        String KEY_DNS_SERVERS = "dns_servers";
+       String KEY_PROXY_HOST = "proxy_host";
+       String KEY_PROXY_PORT = "proxy_port";
+       String KEY_PROXY_EXCLUSIONS = "proxy_exclusions";
        String KEY_READ_ONLY = "read_only";
 
        /**
index 50ffc6297e1d3ad1ba03829a0fbfd16f5e7dedd8..cee26a457d88fcfbee140b6dac60bdf2f040161d 100644 (file)
@@ -151,6 +151,9 @@ public class VpnProfileSqlDataSource implements VpnProfileDataSource
                profile.setIkeProposal(cursor.getString(cursor.getColumnIndexOrThrow(KEY_IKE_PROPOSAL)));
                profile.setEspProposal(cursor.getString(cursor.getColumnIndexOrThrow(KEY_ESP_PROPOSAL)));
                profile.setDnsServers(cursor.getString(cursor.getColumnIndexOrThrow(KEY_DNS_SERVERS)));
+               profile.setProxyHost(cursor.getString(cursor.getColumnIndexOrThrow(KEY_PROXY_HOST)));
+               profile.setProxyPort(getInt(cursor, cursor.getColumnIndexOrThrow(KEY_PROXY_PORT)));
+               profile.setProxyExclusions(cursor.getString(cursor.getColumnIndexOrThrow(KEY_PROXY_EXCLUSIONS)));
                return profile;
        }
 
@@ -179,6 +182,9 @@ public class VpnProfileSqlDataSource implements VpnProfileDataSource
                values.put(KEY_IKE_PROPOSAL, profile.getIkeProposal());
                values.put(KEY_ESP_PROPOSAL, profile.getEspProposal());
                values.put(KEY_DNS_SERVERS, profile.getDnsServers());
+               values.put(KEY_PROXY_HOST, profile.getProxyHost());
+               values.put(KEY_PROXY_PORT, profile.getProxyPort());
+               values.put(KEY_PROXY_EXCLUSIONS, profile.getProxyExclusions());
                return values;
        }