VPN: migrate from generic Bundle to our own Parcelable VpnConfig.
Note that VpnConfig is for internal use only. Also remove hidden methods from ConnectivityManager. Change-Id: Ic298c4dc9a2c6c452bd8f4be6fa84e7ac489c0c4
This commit is contained in:
@@ -19,7 +19,6 @@ package android.net;
|
|||||||
import android.annotation.SdkConstant;
|
import android.annotation.SdkConstant;
|
||||||
import android.annotation.SdkConstant.SdkConstantType;
|
import android.annotation.SdkConstant.SdkConstantType;
|
||||||
import android.os.Binder;
|
import android.os.Binder;
|
||||||
import android.os.Bundle;
|
|
||||||
import android.os.ParcelFileDescriptor;
|
import android.os.ParcelFileDescriptor;
|
||||||
import android.os.RemoteException;
|
import android.os.RemoteException;
|
||||||
|
|
||||||
@@ -758,43 +757,4 @@ public class ConnectivityManager {
|
|||||||
} catch (RemoteException e) {
|
} catch (RemoteException e) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Protect a socket from routing changes. This method is limited to VPN
|
|
||||||
* applications, and it is always hidden to avoid direct use.
|
|
||||||
* @hide
|
|
||||||
*/
|
|
||||||
public void protectVpn(ParcelFileDescriptor socket) {
|
|
||||||
try {
|
|
||||||
mService.protectVpn(socket);
|
|
||||||
} catch (RemoteException e) {
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Prepare for a VPN application. This method is limited to VpnDialogs,
|
|
||||||
* and it is always hidden to avoid direct use.
|
|
||||||
* @hide
|
|
||||||
*/
|
|
||||||
public String prepareVpn(String packageName) {
|
|
||||||
try {
|
|
||||||
return mService.prepareVpn(packageName);
|
|
||||||
} catch (RemoteException e) {
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Configure a TUN interface and return its file descriptor. Parameters
|
|
||||||
* are encoded and opaque to this class. This method is limited to VPN
|
|
||||||
* applications, and it is always hidden to avoid direct use.
|
|
||||||
* @hide
|
|
||||||
*/
|
|
||||||
public ParcelFileDescriptor establishVpn(Bundle config) {
|
|
||||||
try {
|
|
||||||
return mService.establishVpn(config);
|
|
||||||
} catch (RemoteException e) {
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -20,10 +20,11 @@ import android.net.LinkProperties;
|
|||||||
import android.net.NetworkInfo;
|
import android.net.NetworkInfo;
|
||||||
import android.net.NetworkState;
|
import android.net.NetworkState;
|
||||||
import android.net.ProxyProperties;
|
import android.net.ProxyProperties;
|
||||||
import android.os.Bundle;
|
|
||||||
import android.os.IBinder;
|
import android.os.IBinder;
|
||||||
import android.os.ParcelFileDescriptor;
|
import android.os.ParcelFileDescriptor;
|
||||||
|
|
||||||
|
import com.android.internal.net.VpnConfig;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Interface that answers queries about, and allows changing, the
|
* Interface that answers queries about, and allows changing, the
|
||||||
* state of network connectivity.
|
* state of network connectivity.
|
||||||
@@ -102,5 +103,5 @@ interface IConnectivityManager
|
|||||||
|
|
||||||
String prepareVpn(String packageName);
|
String prepareVpn(String packageName);
|
||||||
|
|
||||||
ParcelFileDescriptor establishVpn(in Bundle config);
|
ParcelFileDescriptor establishVpn(in VpnConfig config);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -48,7 +48,6 @@ import android.net.RouteInfo;
|
|||||||
import android.net.vpn.VpnManager;
|
import android.net.vpn.VpnManager;
|
||||||
import android.net.wifi.WifiStateTracker;
|
import android.net.wifi.WifiStateTracker;
|
||||||
import android.os.Binder;
|
import android.os.Binder;
|
||||||
import android.os.Bundle;
|
|
||||||
import android.os.FileUtils;
|
import android.os.FileUtils;
|
||||||
import android.os.Handler;
|
import android.os.Handler;
|
||||||
import android.os.HandlerThread;
|
import android.os.HandlerThread;
|
||||||
@@ -67,6 +66,7 @@ import android.util.EventLog;
|
|||||||
import android.util.Slog;
|
import android.util.Slog;
|
||||||
import android.util.SparseIntArray;
|
import android.util.SparseIntArray;
|
||||||
|
|
||||||
|
import com.android.internal.net.VpnConfig;
|
||||||
import com.android.internal.telephony.Phone;
|
import com.android.internal.telephony.Phone;
|
||||||
import com.android.server.connectivity.Tethering;
|
import com.android.server.connectivity.Tethering;
|
||||||
import com.android.server.connectivity.Vpn;
|
import com.android.server.connectivity.Vpn;
|
||||||
@@ -2396,24 +2396,37 @@ public class ConnectivityService extends IConnectivityManager.Stub {
|
|||||||
return value;
|
return value;
|
||||||
}
|
}
|
||||||
|
|
||||||
// @see ConnectivityManager#protectVpn(ParcelFileDescriptor)
|
/**
|
||||||
// Permission checks are done in Vpn class.
|
* Protect a socket from VPN routing rules. This method is used by
|
||||||
|
* VpnBuilder and not available in ConnectivityManager. Permission
|
||||||
|
* checks are done in Vpn class.
|
||||||
|
* @hide
|
||||||
|
*/
|
||||||
@Override
|
@Override
|
||||||
public void protectVpn(ParcelFileDescriptor socket) {
|
public void protectVpn(ParcelFileDescriptor socket) {
|
||||||
mVpn.protect(socket, getDefaultInterface());
|
mVpn.protect(socket, getDefaultInterface());
|
||||||
}
|
}
|
||||||
|
|
||||||
// @see ConnectivityManager#prepareVpn(String)
|
/**
|
||||||
// Permission checks are done in Vpn class.
|
* Prepare for a VPN application. This method is used by VpnDialogs
|
||||||
|
* and not available in ConnectivityManager. Permission checks are
|
||||||
|
* done in Vpn class.
|
||||||
|
* @hide
|
||||||
|
*/
|
||||||
@Override
|
@Override
|
||||||
public String prepareVpn(String packageName) {
|
public String prepareVpn(String packageName) {
|
||||||
return mVpn.prepare(packageName);
|
return mVpn.prepare(packageName);
|
||||||
}
|
}
|
||||||
|
|
||||||
// @see ConnectivityManager#establishVpn(Bundle)
|
/**
|
||||||
// Permission checks are done in Vpn class.
|
* Configure a TUN interface and return its file descriptor. Parameters
|
||||||
|
* are encoded and opaque to this class. This method is used by VpnBuilder
|
||||||
|
* and not available in ConnectivityManager. Permission checks are done
|
||||||
|
* in Vpn class.
|
||||||
|
* @hide
|
||||||
|
*/
|
||||||
@Override
|
@Override
|
||||||
public ParcelFileDescriptor establishVpn(Bundle config) {
|
public ParcelFileDescriptor establishVpn(VpnConfig config) {
|
||||||
return mVpn.establish(config);
|
return mVpn.establish(config);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user