Loading core/java/android/net/ConnectivityManager.java +0 −40 Original line number Diff line number Diff line Loading @@ -19,7 +19,6 @@ package android.net; import android.annotation.SdkConstant; import android.annotation.SdkConstant.SdkConstantType; import android.os.Binder; import android.os.Bundle; import android.os.ParcelFileDescriptor; import android.os.RemoteException; Loading Loading @@ -758,43 +757,4 @@ public class ConnectivityManager { } 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; } } } core/java/android/net/IConnectivityManager.aidl +3 −2 Original line number Diff line number Diff line Loading @@ -20,10 +20,11 @@ import android.net.LinkProperties; import android.net.NetworkInfo; import android.net.NetworkState; import android.net.ProxyProperties; import android.os.Bundle; import android.os.IBinder; import android.os.ParcelFileDescriptor; import com.android.internal.net.VpnConfig; /** * Interface that answers queries about, and allows changing, the * state of network connectivity. Loading Loading @@ -102,5 +103,5 @@ interface IConnectivityManager String prepareVpn(String packageName); ParcelFileDescriptor establishVpn(in Bundle config); ParcelFileDescriptor establishVpn(in VpnConfig config); } core/java/com/android/internal/net/VpnConfig.aidl 0 → 100644 +19 −0 Original line number Diff line number Diff line /* * Copyright (C) 2011 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.android.internal.net; parcelable VpnConfig; core/java/com/android/internal/net/VpnConfig.java 0 → 100644 +80 −0 Original line number Diff line number Diff line /* * Copyright (C) 2011 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.android.internal.net; import android.os.Parcel; import android.os.Parcelable; /** * A simple container used to carry information in VpnBuilder, VpnDialogs, * and com.android.server.connectivity.Vpn. Internal use only. * * @hide */ public class VpnConfig implements Parcelable { public String packageName; public String sessionName; public String interfaceName; public String configureActivity; public int mtu = -1; public String addresses; public String routes; public String dnsServers; public long startTime = -1; @Override public int describeContents() { return 0; } @Override public void writeToParcel(Parcel out, int flags) { out.writeString(packageName); out.writeString(sessionName); out.writeString(interfaceName); out.writeString(configureActivity); out.writeInt(mtu); out.writeString(addresses); out.writeString(routes); out.writeString(dnsServers); out.writeLong(startTime); } public static final Parcelable.Creator<VpnConfig> CREATOR = new Parcelable.Creator<VpnConfig>() { @Override public VpnConfig createFromParcel(Parcel in) { VpnConfig config = new VpnConfig(); config.packageName = in.readString(); config.sessionName = in.readString(); config.interfaceName = in.readString(); config.configureActivity = in.readString(); config.mtu = in.readInt(); config.addresses = in.readString(); config.routes = in.readString(); config.dnsServers = in.readString(); config.startTime = in.readLong(); return config; } @Override public VpnConfig[] newArray(int size) { return new VpnConfig[size]; } }; } services/java/com/android/server/ConnectivityService.java +21 −8 Original line number Diff line number Diff line Loading @@ -48,7 +48,6 @@ import android.net.RouteInfo; import android.net.vpn.VpnManager; import android.net.wifi.WifiStateTracker; import android.os.Binder; import android.os.Bundle; import android.os.FileUtils; import android.os.Handler; import android.os.HandlerThread; Loading @@ -67,6 +66,7 @@ import android.util.EventLog; import android.util.Slog; import android.util.SparseIntArray; import com.android.internal.net.VpnConfig; import com.android.internal.telephony.Phone; import com.android.server.connectivity.Tethering; import com.android.server.connectivity.Vpn; Loading Loading @@ -2396,24 +2396,37 @@ public class ConnectivityService extends IConnectivityManager.Stub { 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 public void protectVpn(ParcelFileDescriptor socket) { 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 public String prepareVpn(String 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 public ParcelFileDescriptor establishVpn(Bundle config) { public ParcelFileDescriptor establishVpn(VpnConfig config) { return mVpn.establish(config); } Loading Loading
core/java/android/net/ConnectivityManager.java +0 −40 Original line number Diff line number Diff line Loading @@ -19,7 +19,6 @@ package android.net; import android.annotation.SdkConstant; import android.annotation.SdkConstant.SdkConstantType; import android.os.Binder; import android.os.Bundle; import android.os.ParcelFileDescriptor; import android.os.RemoteException; Loading Loading @@ -758,43 +757,4 @@ public class ConnectivityManager { } 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; } } }
core/java/android/net/IConnectivityManager.aidl +3 −2 Original line number Diff line number Diff line Loading @@ -20,10 +20,11 @@ import android.net.LinkProperties; import android.net.NetworkInfo; import android.net.NetworkState; import android.net.ProxyProperties; import android.os.Bundle; import android.os.IBinder; import android.os.ParcelFileDescriptor; import com.android.internal.net.VpnConfig; /** * Interface that answers queries about, and allows changing, the * state of network connectivity. Loading Loading @@ -102,5 +103,5 @@ interface IConnectivityManager String prepareVpn(String packageName); ParcelFileDescriptor establishVpn(in Bundle config); ParcelFileDescriptor establishVpn(in VpnConfig config); }
core/java/com/android/internal/net/VpnConfig.aidl 0 → 100644 +19 −0 Original line number Diff line number Diff line /* * Copyright (C) 2011 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.android.internal.net; parcelable VpnConfig;
core/java/com/android/internal/net/VpnConfig.java 0 → 100644 +80 −0 Original line number Diff line number Diff line /* * Copyright (C) 2011 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.android.internal.net; import android.os.Parcel; import android.os.Parcelable; /** * A simple container used to carry information in VpnBuilder, VpnDialogs, * and com.android.server.connectivity.Vpn. Internal use only. * * @hide */ public class VpnConfig implements Parcelable { public String packageName; public String sessionName; public String interfaceName; public String configureActivity; public int mtu = -1; public String addresses; public String routes; public String dnsServers; public long startTime = -1; @Override public int describeContents() { return 0; } @Override public void writeToParcel(Parcel out, int flags) { out.writeString(packageName); out.writeString(sessionName); out.writeString(interfaceName); out.writeString(configureActivity); out.writeInt(mtu); out.writeString(addresses); out.writeString(routes); out.writeString(dnsServers); out.writeLong(startTime); } public static final Parcelable.Creator<VpnConfig> CREATOR = new Parcelable.Creator<VpnConfig>() { @Override public VpnConfig createFromParcel(Parcel in) { VpnConfig config = new VpnConfig(); config.packageName = in.readString(); config.sessionName = in.readString(); config.interfaceName = in.readString(); config.configureActivity = in.readString(); config.mtu = in.readInt(); config.addresses = in.readString(); config.routes = in.readString(); config.dnsServers = in.readString(); config.startTime = in.readLong(); return config; } @Override public VpnConfig[] newArray(int size) { return new VpnConfig[size]; } }; }
services/java/com/android/server/ConnectivityService.java +21 −8 Original line number Diff line number Diff line Loading @@ -48,7 +48,6 @@ import android.net.RouteInfo; import android.net.vpn.VpnManager; import android.net.wifi.WifiStateTracker; import android.os.Binder; import android.os.Bundle; import android.os.FileUtils; import android.os.Handler; import android.os.HandlerThread; Loading @@ -67,6 +66,7 @@ import android.util.EventLog; import android.util.Slog; import android.util.SparseIntArray; import com.android.internal.net.VpnConfig; import com.android.internal.telephony.Phone; import com.android.server.connectivity.Tethering; import com.android.server.connectivity.Vpn; Loading Loading @@ -2396,24 +2396,37 @@ public class ConnectivityService extends IConnectivityManager.Stub { 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 public void protectVpn(ParcelFileDescriptor socket) { 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 public String prepareVpn(String 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 public ParcelFileDescriptor establishVpn(Bundle config) { public ParcelFileDescriptor establishVpn(VpnConfig config) { return mVpn.establish(config); } Loading