summaryrefslogtreecommitdiffstats
path: root/core/java/com
diff options
context:
space:
mode:
authorJeff Sharkey <jsharkey@android.com>2012-10-19 10:48:11 -0700
committerJeff Sharkey <jsharkey@android.com>2012-10-19 10:48:11 -0700
commit6e7aa77565553e487a1e14478d9c30f512156232 (patch)
tree14f68109537bd9dfd5195a360bf1363113086c47 /core/java/com
parent8d9a1f66d9d3dbbd45a56d441a746ec11dba7645 (diff)
downloadframeworks_base-6e7aa77565553e487a1e14478d9c30f512156232.zip
frameworks_base-6e7aa77565553e487a1e14478d9c30f512156232.tar.gz
frameworks_base-6e7aa77565553e487a1e14478d9c30f512156232.tar.bz2
Parcel VpnProfile without using disk format.
The on-disk format of VpnProfile only stores the username/password when saveLogin is set, which was dropping them across IPC boundaries. Bug: 7378327 Change-Id: I30c16efb358ab8f8d3d9229bbf9811146fe034ce
Diffstat (limited to 'core/java/com')
-rw-r--r--core/java/com/android/internal/net/VpnProfile.java50
1 files changed, 42 insertions, 8 deletions
diff --git a/core/java/com/android/internal/net/VpnProfile.java b/core/java/com/android/internal/net/VpnProfile.java
index 7287327..c9b7cb3 100644
--- a/core/java/com/android/internal/net/VpnProfile.java
+++ b/core/java/com/android/internal/net/VpnProfile.java
@@ -70,6 +70,47 @@ public class VpnProfile implements Cloneable, Parcelable {
this.key = key;
}
+ public VpnProfile(Parcel in) {
+ key = in.readString();
+ name = in.readString();
+ type = in.readInt();
+ server = in.readString();
+ username = in.readString();
+ password = in.readString();
+ dnsServers = in.readString();
+ searchDomains = in.readString();
+ routes = in.readString();
+ mppe = in.readInt() != 0;
+ l2tpSecret = in.readString();
+ ipsecIdentifier = in.readString();
+ ipsecSecret = in.readString();
+ ipsecUserCert = in.readString();
+ ipsecCaCert = in.readString();
+ ipsecServerCert = in.readString();
+ saveLogin = in.readInt() != 0;
+ }
+
+ @Override
+ public void writeToParcel(Parcel out, int flags) {
+ out.writeString(key);
+ out.writeString(name);
+ out.writeInt(type);
+ out.writeString(server);
+ out.writeString(username);
+ out.writeString(password);
+ out.writeString(dnsServers);
+ out.writeString(searchDomains);
+ out.writeString(routes);
+ out.writeInt(mppe ? 1 : 0);
+ out.writeString(l2tpSecret);
+ out.writeString(ipsecIdentifier);
+ out.writeString(ipsecSecret);
+ out.writeString(ipsecUserCert);
+ out.writeString(ipsecCaCert);
+ out.writeString(ipsecServerCert);
+ out.writeInt(saveLogin ? 1 : 0);
+ }
+
public static VpnProfile decode(String key, byte[] value) {
try {
if (key == null) {
@@ -155,17 +196,10 @@ public class VpnProfile implements Cloneable, Parcelable {
}
}
- @Override
- public void writeToParcel(Parcel out, int flags) {
- out.writeString(key);
- out.writeByteArray(encode());
- }
-
public static final Creator<VpnProfile> CREATOR = new Creator<VpnProfile>() {
@Override
public VpnProfile createFromParcel(Parcel in) {
- final String key = in.readString();
- return decode(key, in.createByteArray());
+ return new VpnProfile(in);
}
@Override