API review: access field by method am: 8745384d71 am: 4508bc707e

Change-Id: I118e379d231628b5bb9b4dfb689a95925be5f858
This commit is contained in:
Aaron Huang
2020-03-20 11:36:16 +00:00
committed by Automerger Merge Worker
8 changed files with 101 additions and 60 deletions

View File

@@ -6121,10 +6121,10 @@ package android.net {
public class InvalidPacketException extends java.lang.Exception { public class InvalidPacketException extends java.lang.Exception {
ctor public InvalidPacketException(int); 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_IP_ADDRESS = -21; // 0xffffffeb
field public static final int ERROR_INVALID_LENGTH = -23; // 0xffffffe9 field public static final int ERROR_INVALID_LENGTH = -23; // 0xffffffe9
field public static final int ERROR_INVALID_PORT = -22; // 0xffffffea field public static final int ERROR_INVALID_PORT = -22; // 0xffffffea
field public final int error;
} }
public final class IpConfiguration implements android.os.Parcelable { public final class IpConfiguration implements android.os.Parcelable {
@@ -6178,12 +6178,12 @@ package android.net {
} }
public class KeepalivePacketData { 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(); method @NonNull public byte[] getPacket();
field @NonNull public final java.net.InetAddress dstAddress; method @NonNull public java.net.InetAddress getSrcAddress();
field public final int dstPort; method public int getSrcPort();
field @NonNull public final java.net.InetAddress srcAddress;
field public final int srcPort;
} }
public class LinkAddress implements android.os.Parcelable { public class LinkAddress implements android.os.Parcelable {

View File

@@ -28,7 +28,7 @@ import java.lang.annotation.RetentionPolicy;
*/ */
@SystemApi @SystemApi
public class InvalidPacketException extends Exception { public class InvalidPacketException extends Exception {
public final int error; private final int mError;
// Must match SocketKeepalive#ERROR_INVALID_IP_ADDRESS. // Must match SocketKeepalive#ERROR_INVALID_IP_ADDRESS.
/** Invalid IP address. */ /** Invalid IP address. */
@@ -56,6 +56,11 @@ public class InvalidPacketException extends Exception {
* See the error code for details. * See the error code for details.
*/ */
public InvalidPacketException(@ErrorCode final int error) { public InvalidPacketException(@ErrorCode final int error) {
this.error = error; this.mError = error;
}
/** Get error code. */
public int getError() {
return mError;
} }
} }

View File

@@ -19,6 +19,7 @@ package android.net;
import static android.net.InvalidPacketException.ERROR_INVALID_IP_ADDRESS; import static android.net.InvalidPacketException.ERROR_INVALID_IP_ADDRESS;
import static android.net.InvalidPacketException.ERROR_INVALID_PORT; import static android.net.InvalidPacketException.ERROR_INVALID_PORT;
import android.annotation.IntRange;
import android.annotation.NonNull; import android.annotation.NonNull;
import android.annotation.SystemApi; import android.annotation.SystemApi;
import android.net.util.IpUtils; import android.net.util.IpUtils;
@@ -37,17 +38,17 @@ public class KeepalivePacketData {
/** Source IP address */ /** Source IP address */
@NonNull @NonNull
public final InetAddress srcAddress; private final InetAddress mSrcAddress;
/** Destination IP address */ /** Destination IP address */
@NonNull @NonNull
public final InetAddress dstAddress; private final InetAddress mDstAddress;
/** Source port */ /** Source port */
public final int srcPort; private final int mSrcPort;
/** Destination port */ /** 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. */ /** Packet data. A raw byte string of packet data, not including the link-layer header. */
private final byte[] mPacket; private final byte[] mPacket;
@@ -60,13 +61,14 @@ public class KeepalivePacketData {
/** /**
* A holding class for data necessary to build a keepalive packet. * A holding class for data necessary to build a keepalive packet.
*/ */
protected KeepalivePacketData(@NonNull InetAddress srcAddress, int srcPort, protected KeepalivePacketData(@NonNull InetAddress srcAddress,
@NonNull InetAddress dstAddress, int dstPort, @IntRange(from = 0, to = 65535) int srcPort, @NonNull InetAddress dstAddress,
@NonNull byte[] data) throws InvalidPacketException { @IntRange(from = 0, to = 65535) int dstPort,
this.srcAddress = srcAddress; @NonNull byte[] data) throws InvalidPacketException {
this.dstAddress = dstAddress; this.mSrcAddress = srcAddress;
this.srcPort = srcPort; this.mDstAddress = dstAddress;
this.dstPort = dstPort; this.mSrcPort = srcPort;
this.mDstPort = dstPort;
this.mPacket = data; this.mPacket = data;
// Check we have two IP addresses of the same family. // Check we have two IP addresses of the same family.
@@ -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 @NonNull
public byte[] getPacket() { public byte[] getPacket() {
return mPacket.clone(); return mPacket.clone();

View File

@@ -94,10 +94,10 @@ public final class NattKeepalivePacketData extends KeepalivePacketData implement
/** Write to parcel */ /** Write to parcel */
public void writeToParcel(@NonNull Parcel out, int flags) { public void writeToParcel(@NonNull Parcel out, int flags) {
out.writeString(srcAddress.getHostAddress()); out.writeString(getSrcAddress().getHostAddress());
out.writeString(dstAddress.getHostAddress()); out.writeString(getDstAddress().getHostAddress());
out.writeInt(srcPort); out.writeInt(getSrcPort());
out.writeInt(dstPort); out.writeInt(getDstPort());
} }
/** Parcelable Creator */ /** Parcelable Creator */
@@ -115,7 +115,7 @@ public final class NattKeepalivePacketData extends KeepalivePacketData implement
dstAddress, dstPort); dstAddress, dstPort);
} catch (InvalidPacketException e) { } catch (InvalidPacketException e) {
throw new IllegalArgumentException( throw new IllegalArgumentException(
"Invalid NAT-T keepalive data: " + e.error); "Invalid NAT-T keepalive data: " + e.getError());
} }
} }
@@ -128,14 +128,16 @@ public final class NattKeepalivePacketData extends KeepalivePacketData implement
public boolean equals(@Nullable final Object o) { public boolean equals(@Nullable final Object o) {
if (!(o instanceof NattKeepalivePacketData)) return false; if (!(o instanceof NattKeepalivePacketData)) return false;
final NattKeepalivePacketData other = (NattKeepalivePacketData) o; final NattKeepalivePacketData other = (NattKeepalivePacketData) o;
return this.srcAddress.equals(other.srcAddress) final InetAddress srcAddress = getSrcAddress();
&& this.dstAddress.equals(other.dstAddress) final InetAddress dstAddress = getDstAddress();
&& this.srcPort == other.srcPort return srcAddress.equals(other.getSrcAddress())
&& this.dstPort == other.dstPort; && dstAddress.equals(other.getDstAddress())
&& getSrcPort() == other.getSrcPort()
&& getDstPort() == other.getDstPort();
} }
@Override @Override
public int hashCode() { public int hashCode() {
return Objects.hash(srcAddress, dstAddress, srcPort, dstPort); return Objects.hash(getSrcAddress(), getDstAddress(), getSrcPort(), getDstPort());
} }
} }

View File

@@ -220,9 +220,9 @@ public class KeepaliveTracker {
+ " network=" + mNai.network + " network=" + mNai.network
+ " startedState=" + startedStateString(mStartedState) + " 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 + " interval=" + mInterval
+ " uid=" + mUid + " pid=" + mPid + " privileged=" + mPrivileged + " uid=" + mUid + " pid=" + mPid + " privileged=" + mPrivileged
+ " packetData=" + HexDump.toHexString(mPacket.getPacket()) + " packetData=" + HexDump.toHexString(mPacket.getPacket())
@@ -250,7 +250,7 @@ public class KeepaliveTracker {
private int checkSourceAddress() { private int checkSourceAddress() {
// Check that we have the source address. // Check that we have the source address.
for (InetAddress address : mNai.linkProperties.getAddresses()) { for (InetAddress address : mNai.linkProperties.getAddresses()) {
if (address.equals(mPacket.srcAddress)) { if (address.equals(mPacket.getSrcAddress())) {
return SUCCESS; return SUCCESS;
} }
} }
@@ -619,7 +619,7 @@ public class KeepaliveTracker {
packet = NattKeepalivePacketData.nattKeepalivePacket( packet = NattKeepalivePacketData.nattKeepalivePacket(
srcAddress, srcPort, dstAddress, NATT_PORT); srcAddress, srcPort, dstAddress, NATT_PORT);
} catch (InvalidPacketException e) { } catch (InvalidPacketException e) {
notifyErrorCallback(cb, e.error); notifyErrorCallback(cb, e.getError());
return; return;
} }
KeepaliveInfo ki = null; KeepaliveInfo ki = null;
@@ -662,7 +662,7 @@ public class KeepaliveTracker {
notifyErrorCallback(cb, e.error); notifyErrorCallback(cb, e.error);
return; return;
} catch (InvalidPacketException e) { } catch (InvalidPacketException e) {
notifyErrorCallback(cb, e.error); notifyErrorCallback(cb, e.getError());
return; return;
} }
KeepaliveInfo ki = null; KeepaliveInfo ki = null;

View File

@@ -152,10 +152,12 @@ public class TcpKeepalivePacketData extends KeepalivePacketData implements Parce
public boolean equals(@Nullable final Object o) { public boolean equals(@Nullable final Object o) {
if (!(o instanceof TcpKeepalivePacketData)) return false; if (!(o instanceof TcpKeepalivePacketData)) return false;
final TcpKeepalivePacketData other = (TcpKeepalivePacketData) o; final TcpKeepalivePacketData other = (TcpKeepalivePacketData) o;
return this.srcAddress.equals(other.srcAddress) final InetAddress srcAddress = getSrcAddress();
&& this.dstAddress.equals(other.dstAddress) final InetAddress dstAddress = getDstAddress();
&& this.srcPort == other.srcPort return srcAddress.equals(other.getSrcAddress())
&& this.dstPort == other.dstPort && dstAddress.equals(other.getDstAddress())
&& getSrcPort() == other.getSrcPort()
&& getDstPort() == other.getDstPort()
&& this.tcpAck == other.tcpAck && this.tcpAck == other.tcpAck
&& this.tcpSeq == other.tcpSeq && this.tcpSeq == other.tcpSeq
&& this.tcpWnd == other.tcpWnd && this.tcpWnd == other.tcpWnd
@@ -166,8 +168,8 @@ public class TcpKeepalivePacketData extends KeepalivePacketData implements Parce
@Override @Override
public int hashCode() { public int hashCode() {
return Objects.hash(srcAddress, dstAddress, srcPort, dstPort, tcpAck, tcpSeq, tcpWnd, return Objects.hash(getSrcAddress(), getDstAddress(), getSrcPort(), getDstPort(),
tcpWndScale, ipTos, ipTtl); tcpAck, tcpSeq, tcpWnd, tcpWndScale, ipTos, ipTtl);
} }
/** /**
@@ -182,10 +184,10 @@ public class TcpKeepalivePacketData extends KeepalivePacketData implements Parce
/** Write to parcel. */ /** Write to parcel. */
public void writeToParcel(Parcel out, int flags) { public void writeToParcel(Parcel out, int flags) {
out.writeString(srcAddress.getHostAddress()); out.writeString(getSrcAddress().getHostAddress());
out.writeString(dstAddress.getHostAddress()); out.writeString(getDstAddress().getHostAddress());
out.writeInt(srcPort); out.writeInt(getSrcPort());
out.writeInt(dstPort); out.writeInt(getDstPort());
out.writeByteArray(getPacket()); out.writeByteArray(getPacket());
out.writeInt(tcpSeq); out.writeInt(tcpSeq);
out.writeInt(tcpAck); out.writeInt(tcpAck);
@@ -219,7 +221,7 @@ public class TcpKeepalivePacketData extends KeepalivePacketData implements Parce
return readFromParcel(in); return readFromParcel(in);
} catch (InvalidPacketException e) { } catch (InvalidPacketException e) {
throw new IllegalArgumentException( throw new IllegalArgumentException(
"Invalid NAT-T keepalive data: " + e.error); "Invalid NAT-T keepalive data: " + e.getError());
} }
} }
@@ -234,10 +236,12 @@ public class TcpKeepalivePacketData extends KeepalivePacketData implements Parce
@NonNull @NonNull
public TcpKeepalivePacketDataParcelable toStableParcelable() { public TcpKeepalivePacketDataParcelable toStableParcelable() {
final TcpKeepalivePacketDataParcelable parcel = new TcpKeepalivePacketDataParcelable(); final TcpKeepalivePacketDataParcelable parcel = new TcpKeepalivePacketDataParcelable();
final InetAddress srcAddress = getSrcAddress();
final InetAddress dstAddress = getDstAddress();
parcel.srcAddress = srcAddress.getAddress(); parcel.srcAddress = srcAddress.getAddress();
parcel.srcPort = srcPort; parcel.srcPort = getSrcPort();
parcel.dstAddress = dstAddress.getAddress(); parcel.dstAddress = dstAddress.getAddress();
parcel.dstPort = dstPort; parcel.dstPort = getDstPort();
parcel.seq = tcpSeq; parcel.seq = tcpSeq;
parcel.ack = tcpAck; parcel.ack = tcpAck;
parcel.rcvWnd = tcpWnd; parcel.rcvWnd = tcpWnd;
@@ -249,10 +253,10 @@ public class TcpKeepalivePacketData extends KeepalivePacketData implements Parce
@Override @Override
public String toString() { public String toString() {
return "saddr: " + srcAddress return "saddr: " + getSrcAddress()
+ " daddr: " + dstAddress + " daddr: " + getDstAddress()
+ " sport: " + srcPort + " sport: " + getSrcPort()
+ " dport: " + dstPort + " dport: " + getDstPort()
+ " seq: " + tcpSeq + " seq: " + tcpSeq
+ " ack: " + tcpAck + " ack: " + tcpAck
+ " wnd: " + tcpWnd + " wnd: " + tcpWnd

View File

@@ -20,6 +20,8 @@ import android.annotation.NonNull;
import android.net.NattKeepalivePacketData; import android.net.NattKeepalivePacketData;
import android.net.NattKeepalivePacketDataParcelable; import android.net.NattKeepalivePacketDataParcelable;
import java.net.InetAddress;
/** @hide */ /** @hide */
public final class KeepalivePacketDataUtil { public final class KeepalivePacketDataUtil {
/** /**
@@ -29,11 +31,12 @@ public final class KeepalivePacketDataUtil {
public static NattKeepalivePacketDataParcelable toStableParcelable( public static NattKeepalivePacketDataParcelable toStableParcelable(
NattKeepalivePacketData pkt) { NattKeepalivePacketData pkt) {
final NattKeepalivePacketDataParcelable parcel = new NattKeepalivePacketDataParcelable(); final NattKeepalivePacketDataParcelable parcel = new NattKeepalivePacketDataParcelable();
final InetAddress srcAddress = pkt.getSrcAddress();
parcel.srcAddress = pkt.srcAddress.getAddress(); final InetAddress dstAddress = pkt.getDstAddress();
parcel.srcPort = pkt.srcPort; parcel.srcAddress = srcAddress.getAddress();
parcel.dstAddress = pkt.dstAddress.getAddress(); parcel.srcPort = pkt.getSrcPort();
parcel.dstPort = pkt.dstPort; parcel.dstAddress = dstAddress.getAddress();
parcel.dstPort = pkt.getDstPort();
return parcel; return parcel;
} }
} }

View File

@@ -66,10 +66,10 @@ public final class TcpKeepalivePacketDataTest {
fail("InvalidPacketException: " + e); fail("InvalidPacketException: " + e);
} }
assertEquals(InetAddress.getByAddress(testInfo.srcAddress), resultData.srcAddress); assertEquals(InetAddress.getByAddress(testInfo.srcAddress), resultData.getSrcAddress());
assertEquals(InetAddress.getByAddress(testInfo.dstAddress), resultData.dstAddress); assertEquals(InetAddress.getByAddress(testInfo.dstAddress), resultData.getDstAddress());
assertEquals(testInfo.srcPort, resultData.srcPort); assertEquals(testInfo.srcPort, resultData.getSrcPort());
assertEquals(testInfo.dstPort, resultData.dstPort); assertEquals(testInfo.dstPort, resultData.getDstPort());
assertEquals(testInfo.seq, resultData.tcpSeq); assertEquals(testInfo.seq, resultData.tcpSeq);
assertEquals(testInfo.ack, resultData.tcpAck); assertEquals(testInfo.ack, resultData.tcpAck);
assertEquals(testInfo.rcvWnd, resultData.tcpWnd); assertEquals(testInfo.rcvWnd, resultData.tcpWnd);