Make NattKeepalivePacketData @SystemApi

Bug: 139268426
Bug: 135998869
Test: atest FrameworksNetTests

Change-Id: I687f1a8a4b82cb7e4a0dfeb24f0b23a4de6d5287
This commit is contained in:
Aaron Huang
2020-01-09 22:04:21 +08:00
parent 0e82d1c50d
commit aead9c64fa

View File

@@ -16,9 +16,11 @@
package android.net; package android.net;
import static android.net.SocketKeepalive.ERROR_INVALID_IP_ADDRESS; import static android.net.InvalidPacketException.ERROR_INVALID_IP_ADDRESS;
import static android.net.SocketKeepalive.ERROR_INVALID_PORT; import static android.net.InvalidPacketException.ERROR_INVALID_PORT;
import android.annotation.NonNull;
import android.annotation.SystemApi;
import android.net.util.IpUtils; import android.net.util.IpUtils;
import android.os.Parcel; import android.os.Parcel;
import android.os.Parcelable; import android.os.Parcelable;
@@ -30,20 +32,22 @@ import java.nio.ByteBuffer;
import java.nio.ByteOrder; import java.nio.ByteOrder;
/** @hide */ /** @hide */
@SystemApi
public final class NattKeepalivePacketData extends KeepalivePacketData implements Parcelable { public final class NattKeepalivePacketData extends KeepalivePacketData implements Parcelable {
private static final int IPV4_HEADER_LENGTH = 20; private static final int IPV4_HEADER_LENGTH = 20;
private static final int UDP_HEADER_LENGTH = 8; private static final int UDP_HEADER_LENGTH = 8;
// This should only be constructed via static factory methods, such as // This should only be constructed via static factory methods, such as
// nattKeepalivePacket // nattKeepalivePacket
private NattKeepalivePacketData(InetAddress srcAddress, int srcPort, public NattKeepalivePacketData(@NonNull InetAddress srcAddress, int srcPort,
InetAddress dstAddress, int dstPort, byte[] data) throws @NonNull InetAddress dstAddress, int dstPort, @NonNull byte[] data) throws
InvalidPacketException { InvalidPacketException {
super(srcAddress, srcPort, dstAddress, dstPort, data); super(srcAddress, srcPort, dstAddress, dstPort, data);
} }
/** /**
* Factory method to create Nat-T keepalive packet structure. * Factory method to create Nat-T keepalive packet structure.
* @hide
*/ */
public static NattKeepalivePacketData nattKeepalivePacket( public static NattKeepalivePacketData nattKeepalivePacket(
InetAddress srcAddress, int srcPort, InetAddress dstAddress, int dstPort) InetAddress srcAddress, int srcPort, InetAddress dstAddress, int dstPort)
@@ -87,7 +91,7 @@ public final class NattKeepalivePacketData extends KeepalivePacketData implement
} }
/** Write to parcel */ /** Write to parcel */
public void writeToParcel(Parcel out, int flags) { public void writeToParcel(@NonNull Parcel out, int flags) {
out.writeString(srcAddress.getHostAddress()); out.writeString(srcAddress.getHostAddress());
out.writeString(dstAddress.getHostAddress()); out.writeString(dstAddress.getHostAddress());
out.writeInt(srcPort); out.writeInt(srcPort);
@@ -95,7 +99,7 @@ public final class NattKeepalivePacketData extends KeepalivePacketData implement
} }
/** Parcelable Creator */ /** Parcelable Creator */
public static final Parcelable.Creator<NattKeepalivePacketData> CREATOR = public static final @NonNull Parcelable.Creator<NattKeepalivePacketData> CREATOR =
new Parcelable.Creator<NattKeepalivePacketData>() { new Parcelable.Creator<NattKeepalivePacketData>() {
public NattKeepalivePacketData createFromParcel(Parcel in) { public NattKeepalivePacketData createFromParcel(Parcel in) {
final InetAddress srcAddress = final InetAddress srcAddress =