package org.strongswan.android.data;
+
public class VpnProfile implements Cloneable
{
+ /* While storing this as EnumSet would be nicer this simplifies storing it in a database */
+ public static final int SPLIT_TUNNELING_BLOCK_IPV4 = 1;
+ public static final int SPLIT_TUNNELING_BLOCK_IPV6 = 2;
+
private String mName, mGateway, mUsername, mPassword, mCertificate, mUserCertificate;
- private Integer mMTU, mPort;
+ private Integer mMTU, mPort, mSplitTunneling;
private VpnType mVpnType;
private long mId = -1;
this.mPort = port;
}
+ public Integer getSplitTunneling()
+ {
+ return mSplitTunneling;
+ }
+
+ public void setSplitTunneling(Integer splitTunneling)
+ {
+ this.mSplitTunneling = splitTunneling;
+ }
+
@Override
public String toString()
{
public static final String KEY_USER_CERTIFICATE = "user_certificate";
public static final String KEY_MTU = "mtu";
public static final String KEY_PORT = "port";
+ public static final String KEY_SPLIT_TUNNELING = "split_tunneling";
private DatabaseHelper mDbHelper;
private SQLiteDatabase mDatabase;
private static final String DATABASE_NAME = "strongswan.db";
private static final String TABLE_VPNPROFILE = "vpnprofile";
- private static final int DATABASE_VERSION = 6;
+ private static final int DATABASE_VERSION = 7;
public static final String DATABASE_CREATE =
"CREATE TABLE " + TABLE_VPNPROFILE + " (" +
KEY_CERTIFICATE + " TEXT," +
KEY_USER_CERTIFICATE + " TEXT," +
KEY_MTU + " INTEGER," +
- KEY_PORT + " INTEGER" +
+ KEY_PORT + " INTEGER," +
+ KEY_SPLIT_TUNNELING + " INTEGER" +
");";
private static final String[] ALL_COLUMNS = new String[] {
KEY_ID,
KEY_USER_CERTIFICATE,
KEY_MTU,
KEY_PORT,
+ KEY_SPLIT_TUNNELING,
};
private static class DatabaseHelper extends SQLiteOpenHelper
db.execSQL("ALTER TABLE " + TABLE_VPNPROFILE + " ADD " + KEY_PORT +
" INTEGER;");
}
+ if (oldVersion < 7)
+ {
+ db.execSQL("ALTER TABLE " + TABLE_VPNPROFILE + " ADD " + KEY_SPLIT_TUNNELING +
+ " INTEGER;");
+ }
}
private void updateColumns(SQLiteDatabase db)
profile.setUserCertificateAlias(cursor.getString(cursor.getColumnIndex(KEY_USER_CERTIFICATE)));
profile.setMTU(getInt(cursor, cursor.getColumnIndex(KEY_MTU)));
profile.setPort(getInt(cursor, cursor.getColumnIndex(KEY_PORT)));
+ profile.setSplitTunneling(getInt(cursor, cursor.getColumnIndex(KEY_SPLIT_TUNNELING)));
return profile;
}
values.put(KEY_USER_CERTIFICATE, profile.getUserCertificateAlias());
values.put(KEY_MTU, profile.getMTU());
values.put(KEY_PORT, profile.getPort());
+ values.put(KEY_SPLIT_TUNNELING, profile.getSplitTunneling());
return values;
}