From 8cf997d1c141e3387c67654254d5fcab02b0f2b1 Mon Sep 17 00:00:00 2001 From: Aaron Huang Date: Tue, 23 Apr 2019 22:48:59 -0700 Subject: [PATCH 1/2] Move NattKeepalivePacketData out of the framework For implementing parcelable interface for NattKeepalivePacketData. Move this class out of framework.jar and move to services.jar This class is used in telephony-common.jar and it also loads service.jar. Bug: 33530442 Test: - build pass - atest NetworkStackTests - atest ConnectivityServiceTest Change-Id: Ie1d02bb7bccb76415cf71824147466cabf6b88b6 Merged-In: Ie1d02bb7bccb76415cf71824147466cabf6b88b6 Merged-In: Idf7c25b6b553d8c0cc4ef2ea8193438480420fb4 (cherry picked from commit 58a1f931eba8716c4a630863f658b070cda623de) --- .../net}/java/android/net/NattKeepalivePacketData.java | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename {core => services/net}/java/android/net/NattKeepalivePacketData.java (100%) diff --git a/core/java/android/net/NattKeepalivePacketData.java b/services/net/java/android/net/NattKeepalivePacketData.java similarity index 100% rename from core/java/android/net/NattKeepalivePacketData.java rename to services/net/java/android/net/NattKeepalivePacketData.java From 311bac9b688639e5cda04f89ffa1bf24a35bc7ba Mon Sep 17 00:00:00 2001 From: Aaron Huang Date: Tue, 23 Apr 2019 22:17:16 +0800 Subject: [PATCH 2/2] Add AIDL parcelable for NattKeepalivePacketData Bug: 33530442 Test: atest FrameworksNetTests Change-Id: I9b9a51dc5dc06c90229fb36c34c24258991c4146 Merged-In: I9b9a51dc5dc06c90229fb36c34c24258991c4146 (cherry picked from commit 76985bd9a5577fb905e45b20513661ee10c1f44f) --- .../android/net/NattKeepalivePacketData.java | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/services/net/java/android/net/NattKeepalivePacketData.java b/services/net/java/android/net/NattKeepalivePacketData.java index 5c55a98b87..06838fe655 100644 --- a/services/net/java/android/net/NattKeepalivePacketData.java +++ b/services/net/java/android/net/NattKeepalivePacketData.java @@ -19,8 +19,10 @@ package android.net; import static android.net.SocketKeepalive.ERROR_INVALID_IP_ADDRESS; import static android.net.SocketKeepalive.ERROR_INVALID_PORT; +import android.annotation.NonNull; import android.net.SocketKeepalive.InvalidPacketException; import android.net.util.IpUtils; +import android.os.Parcelable; import android.system.OsConstants; import java.net.Inet4Address; @@ -29,8 +31,7 @@ import java.nio.ByteBuffer; import java.nio.ByteOrder; /** @hide */ -public final class NattKeepalivePacketData extends KeepalivePacketData { - +public final class NattKeepalivePacketData extends KeepalivePacketData implements Parcelable { // This should only be constructed via static factory methods, such as // nattKeepalivePacket private NattKeepalivePacketData(InetAddress srcAddress, int srcPort, @@ -77,4 +78,18 @@ public final class NattKeepalivePacketData extends KeepalivePacketData { return new NattKeepalivePacketData(srcAddress, srcPort, dstAddress, dstPort, buf.array()); } + + /** + * Convert this NattKeepalivePacketData to a NattKeepalivePacketDataParcelable. + */ + @NonNull + public NattKeepalivePacketDataParcelable toStableParcelable() { + final NattKeepalivePacketDataParcelable parcel = new NattKeepalivePacketDataParcelable(); + + parcel.srcAddress = srcAddress.getAddress(); + parcel.srcPort = srcPort; + parcel.dstAddress = dstAddress.getAddress(); + parcel.dstPort = dstPort; + return parcel; + } }