Loading api/system-current.txt +6 −6 Original line number Diff line number Diff line Loading @@ -4399,10 +4399,10 @@ package android.net { public class InvalidPacketException extends java.lang.Exception { ctor public InvalidPacketException(int); method public int getError(); field public static final int ERROR_INVALID_IP_ADDRESS = -21; // 0xffffffeb field public static final int ERROR_INVALID_LENGTH = -23; // 0xffffffe9 field public static final int ERROR_INVALID_PORT = -22; // 0xffffffea field public final int error; } public final class IpConfiguration implements android.os.Parcelable { Loading Loading @@ -4456,12 +4456,12 @@ package android.net { } public class KeepalivePacketData { ctor protected KeepalivePacketData(@NonNull java.net.InetAddress, int, @NonNull java.net.InetAddress, int, @NonNull byte[]) throws android.net.InvalidPacketException; ctor protected KeepalivePacketData(@NonNull java.net.InetAddress, @IntRange(from=0, to=65535) int, @NonNull java.net.InetAddress, @IntRange(from=0, to=65535) int, @NonNull byte[]) throws android.net.InvalidPacketException; method @NonNull public java.net.InetAddress getDstAddress(); method public int getDstPort(); method @NonNull public byte[] getPacket(); field @NonNull public final java.net.InetAddress dstAddress; field public final int dstPort; field @NonNull public final java.net.InetAddress srcAddress; field public final int srcPort; method @NonNull public java.net.InetAddress getSrcAddress(); method public int getSrcPort(); } public class LinkAddress implements android.os.Parcelable { Loading core/java/android/net/InvalidPacketException.java +7 −2 Original line number Diff line number Diff line Loading @@ -28,7 +28,7 @@ import java.lang.annotation.RetentionPolicy; */ @SystemApi public class InvalidPacketException extends Exception { public final int error; private final int mError; // Must match SocketKeepalive#ERROR_INVALID_IP_ADDRESS. /** Invalid IP address. */ Loading Loading @@ -56,6 +56,11 @@ public class InvalidPacketException extends Exception { * See the error code for details. */ public InvalidPacketException(@ErrorCode final int error) { this.error = error; this.mError = error; } /** Get error code. */ public int getError() { return mError; } } core/java/android/net/KeepalivePacketData.java +38 −11 Original line number Diff line number Diff line Loading @@ -19,6 +19,7 @@ package android.net; import static android.net.InvalidPacketException.ERROR_INVALID_IP_ADDRESS; import static android.net.InvalidPacketException.ERROR_INVALID_PORT; import android.annotation.IntRange; import android.annotation.NonNull; import android.annotation.SystemApi; import android.net.util.IpUtils; Loading @@ -37,17 +38,17 @@ public class KeepalivePacketData { /** Source IP address */ @NonNull public final InetAddress srcAddress; private final InetAddress mSrcAddress; /** Destination IP address */ @NonNull public final InetAddress dstAddress; private final InetAddress mDstAddress; /** Source port */ public final int srcPort; private final int mSrcPort; /** Destination port */ public final int dstPort; private final int mDstPort; /** Packet data. A raw byte string of packet data, not including the link-layer header. */ private final byte[] mPacket; Loading @@ -60,13 +61,14 @@ public class KeepalivePacketData { /** * A holding class for data necessary to build a keepalive packet. */ protected KeepalivePacketData(@NonNull InetAddress srcAddress, int srcPort, @NonNull InetAddress dstAddress, int dstPort, protected KeepalivePacketData(@NonNull InetAddress srcAddress, @IntRange(from = 0, to = 65535) int srcPort, @NonNull InetAddress dstAddress, @IntRange(from = 0, to = 65535) int dstPort, @NonNull byte[] data) throws InvalidPacketException { this.srcAddress = srcAddress; this.dstAddress = dstAddress; this.srcPort = srcPort; this.dstPort = dstPort; this.mSrcAddress = srcAddress; this.mDstAddress = dstAddress; this.mSrcPort = srcPort; this.mDstPort = dstPort; this.mPacket = data; // Check we have two IP addresses of the same family. Loading @@ -83,6 +85,31 @@ public class KeepalivePacketData { } } /** Get source IP address. */ @NonNull public InetAddress getSrcAddress() { return mSrcAddress; } /** Get destination IP address. */ @NonNull public InetAddress getDstAddress() { return mDstAddress; } /** Get source port number. */ public int getSrcPort() { return mSrcPort; } /** Get destination port number. */ public int getDstPort() { return mDstPort; } /** * Returns a byte array of the given packet data. */ @NonNull public byte[] getPacket() { return mPacket.clone(); Loading core/java/android/net/NattKeepalivePacketData.java +12 −10 Original line number Diff line number Diff line Loading @@ -94,10 +94,10 @@ public final class NattKeepalivePacketData extends KeepalivePacketData implement /** Write to parcel */ public void writeToParcel(@NonNull Parcel out, int flags) { out.writeString(srcAddress.getHostAddress()); out.writeString(dstAddress.getHostAddress()); out.writeInt(srcPort); out.writeInt(dstPort); out.writeString(getSrcAddress().getHostAddress()); out.writeString(getDstAddress().getHostAddress()); out.writeInt(getSrcPort()); out.writeInt(getDstPort()); } /** Parcelable Creator */ Loading @@ -115,7 +115,7 @@ public final class NattKeepalivePacketData extends KeepalivePacketData implement dstAddress, dstPort); } catch (InvalidPacketException e) { throw new IllegalArgumentException( "Invalid NAT-T keepalive data: " + e.error); "Invalid NAT-T keepalive data: " + e.getError()); } } Loading @@ -128,14 +128,16 @@ public final class NattKeepalivePacketData extends KeepalivePacketData implement public boolean equals(@Nullable final Object o) { if (!(o instanceof NattKeepalivePacketData)) return false; final NattKeepalivePacketData other = (NattKeepalivePacketData) o; return this.srcAddress.equals(other.srcAddress) && this.dstAddress.equals(other.dstAddress) && this.srcPort == other.srcPort && this.dstPort == other.dstPort; final InetAddress srcAddress = getSrcAddress(); final InetAddress dstAddress = getDstAddress(); return srcAddress.equals(other.getSrcAddress()) && dstAddress.equals(other.getDstAddress()) && getSrcPort() == other.getSrcPort() && getDstPort() == other.getDstPort(); } @Override public int hashCode() { return Objects.hash(srcAddress, dstAddress, srcPort, dstPort); return Objects.hash(getSrcAddress(), getDstAddress(), getSrcPort(), getDstPort()); } } services/core/java/com/android/server/connectivity/KeepaliveTracker.java +5 −5 Original line number Diff line number Diff line Loading @@ -220,9 +220,9 @@ public class KeepaliveTracker { + " network=" + mNai.network + " startedState=" + startedStateString(mStartedState) + " " + IpUtils.addressAndPortToString(mPacket.srcAddress, mPacket.srcPort) + IpUtils.addressAndPortToString(mPacket.getSrcAddress(), mPacket.getSrcPort()) + "->" + IpUtils.addressAndPortToString(mPacket.dstAddress, mPacket.dstPort) + IpUtils.addressAndPortToString(mPacket.getDstAddress(), mPacket.getDstPort()) + " interval=" + mInterval + " uid=" + mUid + " pid=" + mPid + " privileged=" + mPrivileged + " packetData=" + HexDump.toHexString(mPacket.getPacket()) Loading Loading @@ -250,7 +250,7 @@ public class KeepaliveTracker { private int checkSourceAddress() { // Check that we have the source address. for (InetAddress address : mNai.linkProperties.getAddresses()) { if (address.equals(mPacket.srcAddress)) { if (address.equals(mPacket.getSrcAddress())) { return SUCCESS; } } Loading Loading @@ -619,7 +619,7 @@ public class KeepaliveTracker { packet = NattKeepalivePacketData.nattKeepalivePacket( srcAddress, srcPort, dstAddress, NATT_PORT); } catch (InvalidPacketException e) { notifyErrorCallback(cb, e.error); notifyErrorCallback(cb, e.getError()); return; } KeepaliveInfo ki = null; Loading Loading @@ -662,7 +662,7 @@ public class KeepaliveTracker { notifyErrorCallback(cb, e.error); return; } catch (InvalidPacketException e) { notifyErrorCallback(cb, e.error); notifyErrorCallback(cb, e.getError()); return; } KeepaliveInfo ki = null; Loading Loading
api/system-current.txt +6 −6 Original line number Diff line number Diff line Loading @@ -4399,10 +4399,10 @@ package android.net { public class InvalidPacketException extends java.lang.Exception { ctor public InvalidPacketException(int); method public int getError(); field public static final int ERROR_INVALID_IP_ADDRESS = -21; // 0xffffffeb field public static final int ERROR_INVALID_LENGTH = -23; // 0xffffffe9 field public static final int ERROR_INVALID_PORT = -22; // 0xffffffea field public final int error; } public final class IpConfiguration implements android.os.Parcelable { Loading Loading @@ -4456,12 +4456,12 @@ package android.net { } public class KeepalivePacketData { ctor protected KeepalivePacketData(@NonNull java.net.InetAddress, int, @NonNull java.net.InetAddress, int, @NonNull byte[]) throws android.net.InvalidPacketException; ctor protected KeepalivePacketData(@NonNull java.net.InetAddress, @IntRange(from=0, to=65535) int, @NonNull java.net.InetAddress, @IntRange(from=0, to=65535) int, @NonNull byte[]) throws android.net.InvalidPacketException; method @NonNull public java.net.InetAddress getDstAddress(); method public int getDstPort(); method @NonNull public byte[] getPacket(); field @NonNull public final java.net.InetAddress dstAddress; field public final int dstPort; field @NonNull public final java.net.InetAddress srcAddress; field public final int srcPort; method @NonNull public java.net.InetAddress getSrcAddress(); method public int getSrcPort(); } public class LinkAddress implements android.os.Parcelable { Loading
core/java/android/net/InvalidPacketException.java +7 −2 Original line number Diff line number Diff line Loading @@ -28,7 +28,7 @@ import java.lang.annotation.RetentionPolicy; */ @SystemApi public class InvalidPacketException extends Exception { public final int error; private final int mError; // Must match SocketKeepalive#ERROR_INVALID_IP_ADDRESS. /** Invalid IP address. */ Loading Loading @@ -56,6 +56,11 @@ public class InvalidPacketException extends Exception { * See the error code for details. */ public InvalidPacketException(@ErrorCode final int error) { this.error = error; this.mError = error; } /** Get error code. */ public int getError() { return mError; } }
core/java/android/net/KeepalivePacketData.java +38 −11 Original line number Diff line number Diff line Loading @@ -19,6 +19,7 @@ package android.net; import static android.net.InvalidPacketException.ERROR_INVALID_IP_ADDRESS; import static android.net.InvalidPacketException.ERROR_INVALID_PORT; import android.annotation.IntRange; import android.annotation.NonNull; import android.annotation.SystemApi; import android.net.util.IpUtils; Loading @@ -37,17 +38,17 @@ public class KeepalivePacketData { /** Source IP address */ @NonNull public final InetAddress srcAddress; private final InetAddress mSrcAddress; /** Destination IP address */ @NonNull public final InetAddress dstAddress; private final InetAddress mDstAddress; /** Source port */ public final int srcPort; private final int mSrcPort; /** Destination port */ public final int dstPort; private final int mDstPort; /** Packet data. A raw byte string of packet data, not including the link-layer header. */ private final byte[] mPacket; Loading @@ -60,13 +61,14 @@ public class KeepalivePacketData { /** * A holding class for data necessary to build a keepalive packet. */ protected KeepalivePacketData(@NonNull InetAddress srcAddress, int srcPort, @NonNull InetAddress dstAddress, int dstPort, protected KeepalivePacketData(@NonNull InetAddress srcAddress, @IntRange(from = 0, to = 65535) int srcPort, @NonNull InetAddress dstAddress, @IntRange(from = 0, to = 65535) int dstPort, @NonNull byte[] data) throws InvalidPacketException { this.srcAddress = srcAddress; this.dstAddress = dstAddress; this.srcPort = srcPort; this.dstPort = dstPort; this.mSrcAddress = srcAddress; this.mDstAddress = dstAddress; this.mSrcPort = srcPort; this.mDstPort = dstPort; this.mPacket = data; // Check we have two IP addresses of the same family. Loading @@ -83,6 +85,31 @@ public class KeepalivePacketData { } } /** Get source IP address. */ @NonNull public InetAddress getSrcAddress() { return mSrcAddress; } /** Get destination IP address. */ @NonNull public InetAddress getDstAddress() { return mDstAddress; } /** Get source port number. */ public int getSrcPort() { return mSrcPort; } /** Get destination port number. */ public int getDstPort() { return mDstPort; } /** * Returns a byte array of the given packet data. */ @NonNull public byte[] getPacket() { return mPacket.clone(); Loading
core/java/android/net/NattKeepalivePacketData.java +12 −10 Original line number Diff line number Diff line Loading @@ -94,10 +94,10 @@ public final class NattKeepalivePacketData extends KeepalivePacketData implement /** Write to parcel */ public void writeToParcel(@NonNull Parcel out, int flags) { out.writeString(srcAddress.getHostAddress()); out.writeString(dstAddress.getHostAddress()); out.writeInt(srcPort); out.writeInt(dstPort); out.writeString(getSrcAddress().getHostAddress()); out.writeString(getDstAddress().getHostAddress()); out.writeInt(getSrcPort()); out.writeInt(getDstPort()); } /** Parcelable Creator */ Loading @@ -115,7 +115,7 @@ public final class NattKeepalivePacketData extends KeepalivePacketData implement dstAddress, dstPort); } catch (InvalidPacketException e) { throw new IllegalArgumentException( "Invalid NAT-T keepalive data: " + e.error); "Invalid NAT-T keepalive data: " + e.getError()); } } Loading @@ -128,14 +128,16 @@ public final class NattKeepalivePacketData extends KeepalivePacketData implement public boolean equals(@Nullable final Object o) { if (!(o instanceof NattKeepalivePacketData)) return false; final NattKeepalivePacketData other = (NattKeepalivePacketData) o; return this.srcAddress.equals(other.srcAddress) && this.dstAddress.equals(other.dstAddress) && this.srcPort == other.srcPort && this.dstPort == other.dstPort; final InetAddress srcAddress = getSrcAddress(); final InetAddress dstAddress = getDstAddress(); return srcAddress.equals(other.getSrcAddress()) && dstAddress.equals(other.getDstAddress()) && getSrcPort() == other.getSrcPort() && getDstPort() == other.getDstPort(); } @Override public int hashCode() { return Objects.hash(srcAddress, dstAddress, srcPort, dstPort); return Objects.hash(getSrcAddress(), getDstAddress(), getSrcPort(), getDstPort()); } }
services/core/java/com/android/server/connectivity/KeepaliveTracker.java +5 −5 Original line number Diff line number Diff line Loading @@ -220,9 +220,9 @@ public class KeepaliveTracker { + " network=" + mNai.network + " startedState=" + startedStateString(mStartedState) + " " + IpUtils.addressAndPortToString(mPacket.srcAddress, mPacket.srcPort) + IpUtils.addressAndPortToString(mPacket.getSrcAddress(), mPacket.getSrcPort()) + "->" + IpUtils.addressAndPortToString(mPacket.dstAddress, mPacket.dstPort) + IpUtils.addressAndPortToString(mPacket.getDstAddress(), mPacket.getDstPort()) + " interval=" + mInterval + " uid=" + mUid + " pid=" + mPid + " privileged=" + mPrivileged + " packetData=" + HexDump.toHexString(mPacket.getPacket()) Loading Loading @@ -250,7 +250,7 @@ public class KeepaliveTracker { private int checkSourceAddress() { // Check that we have the source address. for (InetAddress address : mNai.linkProperties.getAddresses()) { if (address.equals(mPacket.srcAddress)) { if (address.equals(mPacket.getSrcAddress())) { return SUCCESS; } } Loading Loading @@ -619,7 +619,7 @@ public class KeepaliveTracker { packet = NattKeepalivePacketData.nattKeepalivePacket( srcAddress, srcPort, dstAddress, NATT_PORT); } catch (InvalidPacketException e) { notifyErrorCallback(cb, e.error); notifyErrorCallback(cb, e.getError()); return; } KeepaliveInfo ki = null; Loading Loading @@ -662,7 +662,7 @@ public class KeepaliveTracker { notifyErrorCallback(cb, e.error); return; } catch (InvalidPacketException e) { notifyErrorCallback(cb, e.error); notifyErrorCallback(cb, e.getError()); return; } KeepaliveInfo ki = null; Loading