Loading core/java/android/net/IConnectivityManager.aidl +4 −1 Original line number Diff line number Diff line Loading @@ -23,6 +23,7 @@ import android.net.ProxyProperties; import android.os.IBinder; import android.os.ParcelFileDescriptor; import com.android.internal.net.LegacyVpnInfo; import com.android.internal.net.VpnConfig; /** Loading Loading @@ -105,5 +106,7 @@ interface IConnectivityManager ParcelFileDescriptor establishVpn(in VpnConfig config); void doLegacyVpn(in VpnConfig config, in String[] racoon, in String[] mtpd); void startLegacyVpn(in VpnConfig config, in String[] racoon, in String[] mtpd); LegacyVpnInfo getLegacyVpnInfo(); } core/java/com/android/internal/net/LegacyVpnInfo.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 LegacyVpnInfo; core/java/com/android/internal/net/LegacyVpnInfo.java 0 → 100644 +69 −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.app.PendingIntent; import android.os.Parcel; import android.os.Parcelable; /** * A simple container used to carry information of the ongoing legacy VPN. * Internal use only. * * @hide */ public class LegacyVpnInfo implements Parcelable { public static final int STATE_DISCONNECTED = 0; public static final int STATE_INITIALIZING = 1; public static final int STATE_CONNECTING = 2; public static final int STATE_CONNECTED = 3; public static final int STATE_TIMEOUT = 4; public static final int STATE_FAILED = 5; public String key; public int state = -1; public PendingIntent intent; @Override public int describeContents() { return 0; } @Override public void writeToParcel(Parcel out, int flags) { out.writeString(key); out.writeInt(state); out.writeParcelable(intent, flags); } public static final Parcelable.Creator<LegacyVpnInfo> CREATOR = new Parcelable.Creator<LegacyVpnInfo>() { @Override public LegacyVpnInfo createFromParcel(Parcel in) { LegacyVpnInfo info = new LegacyVpnInfo(); info.key = in.readString(); info.state = in.readInt(); info.intent = in.readParcelable(null); return info; } @Override public LegacyVpnInfo[] newArray(int size) { return new LegacyVpnInfo[size]; } }; } core/java/com/android/internal/net/VpnConfig.java +3 −4 Original line number Diff line number Diff line Loading @@ -21,7 +21,6 @@ import android.content.Context; import android.content.Intent; import android.os.Parcel; import android.os.Parcelable; import android.os.SystemClock; import java.util.List; Loading @@ -43,14 +42,14 @@ public class VpnConfig implements Parcelable { return intent; } public static PendingIntent getIntentForNotification(Context context, VpnConfig config) { config.startTime = SystemClock.elapsedRealtime(); public static PendingIntent getIntentForStatusPanel(Context context, VpnConfig config) { Intent intent = new Intent(); intent.setClassName("com.android.vpndialogs", "com.android.vpndialogs.ManageDialog"); intent.putExtra("config", config); intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_NO_HISTORY | Intent.FLAG_ACTIVITY_EXCLUDE_FROM_RECENTS); return PendingIntent.getActivity(context, 0, intent, PendingIntent.FLAG_CANCEL_CURRENT); return PendingIntent.getActivity(context, 0, intent, (config == null) ? PendingIntent.FLAG_NO_CREATE : PendingIntent.FLAG_CANCEL_CURRENT); } public String packagz; Loading services/java/com/android/server/ConnectivityService.java +23 −9 Original line number Diff line number Diff line Loading @@ -64,6 +64,7 @@ import android.util.EventLog; import android.util.Slog; import android.util.SparseIntArray; import com.android.internal.net.LegacyVpnInfo; import com.android.internal.net.VpnConfig; import com.android.internal.telephony.Phone; import com.android.server.connectivity.Tethering; Loading Loading @@ -2469,8 +2470,8 @@ public class ConnectivityService extends IConnectivityManager.Stub { /** * 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. * VpnBuilder and not available in ConnectivityManager. Permissions * are checked in Vpn class. * @hide */ @Override Loading @@ -2480,8 +2481,8 @@ public class ConnectivityService extends IConnectivityManager.Stub { /** * Prepare for a VPN application. This method is used by VpnDialogs * and not available in ConnectivityManager. Permission checks are * done in Vpn class. * and not available in ConnectivityManager. Permissions are checked * in Vpn class. * @hide */ @Override Loading @@ -2492,8 +2493,8 @@ public class ConnectivityService extends IConnectivityManager.Stub { /** * 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. * and not available in ConnectivityManager. Permissions are checked in * Vpn class. * @hide */ @Override Loading @@ -2502,12 +2503,25 @@ public class ConnectivityService extends IConnectivityManager.Stub { } /** * Handle a legacy VPN request. * Start legacy VPN and return an intent to VpnDialogs. This method is * used by VpnSettings and not available in ConnectivityManager. * Permissions are checked in Vpn class. * @hide */ @Override public void startLegacyVpn(VpnConfig config, String[] racoon, String[] mtpd) { mVpn.startLegacyVpn(config, racoon, mtpd); } /** * Return the information of the ongoing legacy VPN. This method is used * by VpnSettings and not available in ConnectivityManager. Permissions * are checked in Vpn class. * @hide */ @Override public void doLegacyVpn(VpnConfig config, String[] racoon, String[] mtpd) { mVpn.doLegacyVpn(config, racoon, mtpd); public LegacyVpnInfo getLegacyVpnInfo() { return mVpn.getLegacyVpnInfo(); } private String getDefaultInterface() { Loading Loading
core/java/android/net/IConnectivityManager.aidl +4 −1 Original line number Diff line number Diff line Loading @@ -23,6 +23,7 @@ import android.net.ProxyProperties; import android.os.IBinder; import android.os.ParcelFileDescriptor; import com.android.internal.net.LegacyVpnInfo; import com.android.internal.net.VpnConfig; /** Loading Loading @@ -105,5 +106,7 @@ interface IConnectivityManager ParcelFileDescriptor establishVpn(in VpnConfig config); void doLegacyVpn(in VpnConfig config, in String[] racoon, in String[] mtpd); void startLegacyVpn(in VpnConfig config, in String[] racoon, in String[] mtpd); LegacyVpnInfo getLegacyVpnInfo(); }
core/java/com/android/internal/net/LegacyVpnInfo.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 LegacyVpnInfo;
core/java/com/android/internal/net/LegacyVpnInfo.java 0 → 100644 +69 −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.app.PendingIntent; import android.os.Parcel; import android.os.Parcelable; /** * A simple container used to carry information of the ongoing legacy VPN. * Internal use only. * * @hide */ public class LegacyVpnInfo implements Parcelable { public static final int STATE_DISCONNECTED = 0; public static final int STATE_INITIALIZING = 1; public static final int STATE_CONNECTING = 2; public static final int STATE_CONNECTED = 3; public static final int STATE_TIMEOUT = 4; public static final int STATE_FAILED = 5; public String key; public int state = -1; public PendingIntent intent; @Override public int describeContents() { return 0; } @Override public void writeToParcel(Parcel out, int flags) { out.writeString(key); out.writeInt(state); out.writeParcelable(intent, flags); } public static final Parcelable.Creator<LegacyVpnInfo> CREATOR = new Parcelable.Creator<LegacyVpnInfo>() { @Override public LegacyVpnInfo createFromParcel(Parcel in) { LegacyVpnInfo info = new LegacyVpnInfo(); info.key = in.readString(); info.state = in.readInt(); info.intent = in.readParcelable(null); return info; } @Override public LegacyVpnInfo[] newArray(int size) { return new LegacyVpnInfo[size]; } }; }
core/java/com/android/internal/net/VpnConfig.java +3 −4 Original line number Diff line number Diff line Loading @@ -21,7 +21,6 @@ import android.content.Context; import android.content.Intent; import android.os.Parcel; import android.os.Parcelable; import android.os.SystemClock; import java.util.List; Loading @@ -43,14 +42,14 @@ public class VpnConfig implements Parcelable { return intent; } public static PendingIntent getIntentForNotification(Context context, VpnConfig config) { config.startTime = SystemClock.elapsedRealtime(); public static PendingIntent getIntentForStatusPanel(Context context, VpnConfig config) { Intent intent = new Intent(); intent.setClassName("com.android.vpndialogs", "com.android.vpndialogs.ManageDialog"); intent.putExtra("config", config); intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_NO_HISTORY | Intent.FLAG_ACTIVITY_EXCLUDE_FROM_RECENTS); return PendingIntent.getActivity(context, 0, intent, PendingIntent.FLAG_CANCEL_CURRENT); return PendingIntent.getActivity(context, 0, intent, (config == null) ? PendingIntent.FLAG_NO_CREATE : PendingIntent.FLAG_CANCEL_CURRENT); } public String packagz; Loading
services/java/com/android/server/ConnectivityService.java +23 −9 Original line number Diff line number Diff line Loading @@ -64,6 +64,7 @@ import android.util.EventLog; import android.util.Slog; import android.util.SparseIntArray; import com.android.internal.net.LegacyVpnInfo; import com.android.internal.net.VpnConfig; import com.android.internal.telephony.Phone; import com.android.server.connectivity.Tethering; Loading Loading @@ -2469,8 +2470,8 @@ public class ConnectivityService extends IConnectivityManager.Stub { /** * 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. * VpnBuilder and not available in ConnectivityManager. Permissions * are checked in Vpn class. * @hide */ @Override Loading @@ -2480,8 +2481,8 @@ public class ConnectivityService extends IConnectivityManager.Stub { /** * Prepare for a VPN application. This method is used by VpnDialogs * and not available in ConnectivityManager. Permission checks are * done in Vpn class. * and not available in ConnectivityManager. Permissions are checked * in Vpn class. * @hide */ @Override Loading @@ -2492,8 +2493,8 @@ public class ConnectivityService extends IConnectivityManager.Stub { /** * 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. * and not available in ConnectivityManager. Permissions are checked in * Vpn class. * @hide */ @Override Loading @@ -2502,12 +2503,25 @@ public class ConnectivityService extends IConnectivityManager.Stub { } /** * Handle a legacy VPN request. * Start legacy VPN and return an intent to VpnDialogs. This method is * used by VpnSettings and not available in ConnectivityManager. * Permissions are checked in Vpn class. * @hide */ @Override public void startLegacyVpn(VpnConfig config, String[] racoon, String[] mtpd) { mVpn.startLegacyVpn(config, racoon, mtpd); } /** * Return the information of the ongoing legacy VPN. This method is used * by VpnSettings and not available in ConnectivityManager. Permissions * are checked in Vpn class. * @hide */ @Override public void doLegacyVpn(VpnConfig config, String[] racoon, String[] mtpd) { mVpn.doLegacyVpn(config, racoon, mtpd); public LegacyVpnInfo getLegacyVpnInfo() { return mVpn.getLegacyVpnInfo(); } private String getDefaultInterface() { Loading