android: Add property for NAT-T keepalive interval

This commit is contained in:
Tobias Brunner 2017-06-28 18:28:31 +02:00
parent 209a611530
commit a28302317f
2 changed files with 23 additions and 3 deletions

View 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;

View 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;
}