android: Add property for NAT-T keepalive interval
authorTobias Brunner <tobias@strongswan.org>
Wed, 28 Jun 2017 16:28:31 +0000 (18:28 +0200)
committerTobias Brunner <tobias@strongswan.org>
Mon, 3 Jul 2017 08:33:29 +0000 (10:33 +0200)
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

index 0b552f4..ba50125 100644 (file)
@@ -33,7 +33,7 @@ public class VpnProfile implements Cloneable
 
        private String mName, mGateway, mUsername, mPassword, mCertificate, mUserCertificate;
        private String mRemoteId, mLocalId, mExcludedSubnets, mIncludedSubnets, mSelectedApps;
-       private Integer mMTU, mPort, mSplitTunneling;
+       private Integer mMTU, mPort, mSplitTunneling, mNATKeepAlive;
        private SelectedAppsHandling mSelectedAppsHandling = SelectedAppsHandling.SELECTED_APPS_DISABLE;
        private VpnType mVpnType;
        private UUID mUUID;
@@ -193,6 +193,16 @@ public class VpnProfile implements Cloneable
                this.mPort = port;
        }
 
+       public Integer getNATKeepAlive()
+       {
+               return mNATKeepAlive;
+       }
+
+       public void setNATKeepAlive(Integer keepalive)
+       {
+               this.mNATKeepAlive = keepalive;
+       }
+
        public void setExcludedSubnets(String excludedSubnets)
        {
                this.mExcludedSubnets = excludedSubnets;
index 380dbda..7154336 100644 (file)
@@ -51,6 +51,7 @@ public class VpnProfileDataSource
        public static final String KEY_INCLUDED_SUBNETS = "included_subnets";
        public static final String KEY_SELECTED_APPS = "selected_apps";
        public static final String KEY_SELECTED_APPS_LIST = "selected_apps_list";
+       public static final String KEY_NAT_KEEPALIVE = "nat_keepalive";
 
        private DatabaseHelper mDbHelper;
        private SQLiteDatabase mDatabase;
@@ -59,7 +60,7 @@ public class VpnProfileDataSource
        private static final String DATABASE_NAME = "strongswan.db";
        private static final String TABLE_VPNPROFILE = "vpnprofile";
 
-       private static final int DATABASE_VERSION = 12;
+       private static final int DATABASE_VERSION = 13;
 
        public static final String DATABASE_CREATE =
                                                        "CREATE TABLE " + TABLE_VPNPROFILE + " (" +
@@ -80,7 +81,8 @@ public class VpnProfileDataSource
                                                                KEY_EXCLUDED_SUBNETS + " TEXT," +
                                                                KEY_INCLUDED_SUBNETS + " TEXT," +
                                                                KEY_SELECTED_APPS + " INTEGER," +
-                                                               KEY_SELECTED_APPS_LIST + " TEXT" +
+                                                               KEY_SELECTED_APPS_LIST + " TEXT," +
+                                                               KEY_NAT_KEEPALIVE + " INTEGER" +
                                                        ");";
        private static final String[] ALL_COLUMNS = new String[] {
                                                                KEY_ID,
@@ -101,6 +103,7 @@ public class VpnProfileDataSource
                                                                KEY_INCLUDED_SUBNETS,
                                                                KEY_SELECTED_APPS,
                                                                KEY_SELECTED_APPS_LIST,
+                                                               KEY_NAT_KEEPALIVE,
                                                        };
 
        private static class DatabaseHelper extends SQLiteOpenHelper
@@ -180,6 +183,11 @@ public class VpnProfileDataSource
                                db.execSQL("ALTER TABLE " + TABLE_VPNPROFILE + " ADD " + KEY_SELECTED_APPS_LIST +
                                                   " TEXT;");
                        }
+                       if (oldVersion < 13)
+                       {
+                               db.execSQL("ALTER TABLE " + TABLE_VPNPROFILE + " ADD " + KEY_NAT_KEEPALIVE +
+                                                  " INTEGER;");
+                       }
                }
 
                private void updateColumns(SQLiteDatabase db)
@@ -359,6 +367,7 @@ public class VpnProfileDataSource
                profile.setIncludedSubnets(cursor.getString(cursor.getColumnIndex(KEY_INCLUDED_SUBNETS)));
                profile.setSelectedAppsHandling(getInt(cursor, cursor.getColumnIndex(KEY_SELECTED_APPS)));
                profile.setSelectedApps(cursor.getString(cursor.getColumnIndex(KEY_SELECTED_APPS_LIST)));
+               profile.setNATKeepAlive(getInt(cursor, cursor.getColumnIndex(KEY_NAT_KEEPALIVE)));
                return profile;
        }
 
@@ -382,6 +391,7 @@ public class VpnProfileDataSource
                values.put(KEY_INCLUDED_SUBNETS, profile.getIncludedSubnets());
                values.put(KEY_SELECTED_APPS, profile.getSelectedAppsHandling().getValue());
                values.put(KEY_SELECTED_APPS_LIST, profile.getSelectedApps());
+               values.put(KEY_NAT_KEEPALIVE, profile.getNATKeepAlive());
                return values;
        }