Search in sources :

Example 11 with LegacyVpnInfo

use of com.android.internal.net.LegacyVpnInfo in project android_frameworks_base by DirtyUnicorns.

the class Vpn method getLegacyVpnInfoPrivileged.

/**
     * Return the information of the current ongoing legacy VPN.
     * Callers are responsible for checking permissions if needed.
     */
public synchronized LegacyVpnInfo getLegacyVpnInfoPrivileged() {
    if (mLegacyVpnRunner == null)
        return null;
    final LegacyVpnInfo info = new LegacyVpnInfo();
    info.key = mConfig.user;
    info.state = LegacyVpnInfo.stateFromNetworkInfo(mNetworkInfo);
    if (mNetworkInfo.isConnected()) {
        info.intent = mStatusIntent;
    }
    return info;
}
Also used : LegacyVpnInfo(com.android.internal.net.LegacyVpnInfo)

Example 12 with LegacyVpnInfo

use of com.android.internal.net.LegacyVpnInfo in project Resurrection_packages_apps_Settings by ResurrectionRemix.

the class VpnTests method validateVpnConnection.

/**
     * Verify the vpn connection by checking the VPN state, external IP or ping test
     */
private void validateVpnConnection(VpnProfile profile, boolean pingTestFlag) throws Exception {
    LegacyVpnInfo legacyVpnInfo = mService.getLegacyVpnInfo(UserHandle.myUserId());
    Assert.assertTrue(legacyVpnInfo != null);
    long start = System.currentTimeMillis();
    while (((System.currentTimeMillis() - start) < MAX_CONNECTION_TIME) && (legacyVpnInfo.state != LegacyVpnInfo.STATE_CONNECTED)) {
        Log.v(TAG, "vpn state: " + legacyVpnInfo.state);
        sleep(10 * 1000);
        legacyVpnInfo = mService.getLegacyVpnInfo(UserHandle.myUserId());
    }
    // the vpn state should be CONNECTED
    Assert.assertTrue(legacyVpnInfo.state == LegacyVpnInfo.STATE_CONNECTED);
    if (pingTestFlag) {
        Assert.assertTrue(pingTest(profile.server));
    } else {
        String curIpAddress = getIpAddress();
        // the outgoing IP address should be the same as the VPN server address
        Assert.assertEquals(profile.server, curIpAddress);
    }
}
Also used : LegacyVpnInfo(com.android.internal.net.LegacyVpnInfo)

Example 13 with LegacyVpnInfo

use of com.android.internal.net.LegacyVpnInfo in project Resurrection_packages_apps_Settings by ResurrectionRemix.

the class VpnTests method setUp.

@Override
protected void setUp() throws Exception {
    super.setUp();
    InputStream in = null;
    InstrumentationTestRunner mRunner = (InstrumentationTestRunner) getInstrumentation();
    mContext = mRunner.getContext();
    Bundle arguments = mRunner.getArguments();
    String PROFILE_NAME = arguments.getString("profile");
    Assert.assertNotNull("Push profile to external storage and load with" + "'-e profile <filename>'", PROFILE_NAME);
    File profileFile = new File(Environment.getExternalStorageDirectory(), PROFILE_NAME);
    in = new FileInputStream(profileFile);
    mVpnInfoPool = VpnProfileParser.parse(in);
    Assert.assertNotNull("no VPN profiles are parsed", mVpnInfoPool);
    if (DEBUG) {
        Log.v(TAG, "print out the vpn profiles");
        for (Map.Entry<Integer, VpnInfo> profileEntrySet : mVpnInfoPool.entrySet()) {
            VpnInfo vpnInfo = profileEntrySet.getValue();
            printVpnProfile(vpnInfo.getVpnProfile());
            if (vpnInfo.getCertificateFile() != null) {
                Log.d(TAG, "certificate file for this vpn is " + vpnInfo.getCertificateFile());
            }
            if (vpnInfo.getPassword() != null) {
                Log.d(TAG, "password for the certificate file is: " + vpnInfo.getPassword());
            }
        }
    }
    // disconnect existing vpn if there is any
    LegacyVpnInfo oldVpn = mService.getLegacyVpnInfo(UserHandle.myUserId());
    if (oldVpn != null) {
        Log.v(TAG, "disconnect legacy VPN");
        disconnect();
        // wait till the legacy VPN is disconnected.
        int tries = 0;
        while (tries < MAX_DISCONNECTION_TRIES && mService.getLegacyVpnInfo(UserHandle.myUserId()) != null) {
            tries++;
            Thread.sleep(10 * 1000);
            Log.v(TAG, "Wait for legacy VPN to be disconnected.");
        }
        Assert.assertNull("Failed to disconect VPN", mService.getLegacyVpnInfo(UserHandle.myUserId()));
        // wait for 30 seconds after the previous VPN is disconnected.
        sleep(30 * 1000);
    }
    // Create CertInstallerHelper to initialize the keystore
    mCertHelper = new CertInstallerHelper();
}
Also used : LegacyVpnInfo(com.android.internal.net.LegacyVpnInfo) FileInputStream(java.io.FileInputStream) InputStream(java.io.InputStream) Bundle(android.os.Bundle) FileInputStream(java.io.FileInputStream) InstrumentationTestRunner(android.test.InstrumentationTestRunner) LegacyVpnInfo(com.android.internal.net.LegacyVpnInfo) File(java.io.File) Map(java.util.Map)

Example 14 with LegacyVpnInfo

use of com.android.internal.net.LegacyVpnInfo in project android_frameworks_base by crdroidandroid.

the class SecurityControllerImpl method updateState.

private void updateState() {
    // Find all users with an active VPN
    SparseArray<VpnConfig> vpns = new SparseArray<>();
    try {
        for (UserInfo user : mUserManager.getUsers()) {
            VpnConfig cfg = mConnectivityManagerService.getVpnConfig(user.id);
            if (cfg == null) {
                continue;
            } else if (cfg.legacy) {
                // Legacy VPNs should do nothing if the network is disconnected. Third-party
                // VPN warnings need to continue as traffic can still go to the app.
                LegacyVpnInfo legacyVpn = mConnectivityManagerService.getLegacyVpnInfo(user.id);
                if (legacyVpn == null || legacyVpn.state != LegacyVpnInfo.STATE_CONNECTED) {
                    continue;
                }
            }
            vpns.put(user.id, cfg);
        }
    } catch (RemoteException rme) {
        // Roll back to previous state
        Log.e(TAG, "Unable to list active VPNs", rme);
        return;
    }
    mCurrentVpns = vpns;
}
Also used : SparseArray(android.util.SparseArray) VpnConfig(com.android.internal.net.VpnConfig) LegacyVpnInfo(com.android.internal.net.LegacyVpnInfo) UserInfo(android.content.pm.UserInfo) RemoteException(android.os.RemoteException)

Aggregations

LegacyVpnInfo (com.android.internal.net.LegacyVpnInfo)14 RemoteException (android.os.RemoteException)6 UserInfo (android.content.pm.UserInfo)5 SparseArray (android.util.SparseArray)5 VpnConfig (com.android.internal.net.VpnConfig)5 Bundle (android.os.Bundle)1 InstrumentationTestRunner (android.test.InstrumentationTestRunner)1 File (java.io.File)1 FileInputStream (java.io.FileInputStream)1 InputStream (java.io.InputStream)1 Map (java.util.Map)1