diff options
author | Jeff Sharkey <jsharkey@android.com> | 2012-10-19 10:48:11 -0700 |
---|---|---|
committer | Jeff Sharkey <jsharkey@android.com> | 2012-10-19 10:48:11 -0700 |
commit | 6e7aa77565553e487a1e14478d9c30f512156232 (patch) | |
tree | 14f68109537bd9dfd5195a360bf1363113086c47 /core/java/com | |
parent | 8d9a1f66d9d3dbbd45a56d441a746ec11dba7645 (diff) | |
download | frameworks_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.java | 50 |
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 |