diff options
author | Neil Fuller <nfuller@google.com> | 2019-06-24 08:58:01 -0700 |
---|---|---|
committer | android-build-merger <android-build-merger@google.com> | 2019-06-24 08:58:01 -0700 |
commit | fe749a8247661890889b3152950428663b970f2c (patch) | |
tree | 0fa5bc0938e6e0a2ce68a3b7c8445621efa453e9 | |
parent | 54b63e44f39ea1f2c205c4b09c8c0eb54cfdf95c (diff) | |
parent | 6a19cb82fe53693f00dc0e1937b4a3fddc941350 (diff) |
Merge "General tidy up of android.system" am: 5cca1c7bc6
am: 6a19cb82fe
Change-Id: I33a879389aa2d60a32a976a199a37136fc3f884a
-rw-r--r-- | luni/src/main/java/android/system/IcmpHeaders.java (renamed from luni/src/main/java/android/system/StructIcmpHdr.java) | 41 | ||||
-rw-r--r-- | luni/src/main/java/android/system/Int32Ref.java | 6 | ||||
-rw-r--r-- | luni/src/main/java/android/system/Int64Ref.java | 6 | ||||
-rw-r--r-- | luni/src/main/java/android/system/StructIfaddrs.java | 6 | ||||
-rw-r--r-- | luni/src/main/java/android/system/UnixSocketAddress.java | 2 | ||||
-rw-r--r-- | non_openjdk_java_files.bp | 2 | ||||
-rw-r--r-- | ojluni/src/main/java/java/net/Inet6AddressImpl.java | 4 |
7 files changed, 42 insertions, 25 deletions
diff --git a/luni/src/main/java/android/system/StructIcmpHdr.java b/luni/src/main/java/android/system/IcmpHeaders.java index 87ae679da6..2203d4095d 100644 --- a/luni/src/main/java/android/system/StructIcmpHdr.java +++ b/luni/src/main/java/android/system/IcmpHeaders.java @@ -19,22 +19,26 @@ package android.system; import static android.system.OsConstants.ICMP6_ECHO_REQUEST; import static android.system.OsConstants.ICMP_ECHO; +import java.io.FileDescriptor; +import java.net.SocketAddress; + /** - * Corresponds to C's {@code struct icmphdr} from linux/icmp.h and {@code struct icmp6hdr} from - * linux/icmpv6.h + * A utility class that can create ICMP header bytes corresponding to C's {@code struct icmphdr} + * from linux/icmp.h and {@code struct icmp6hdr} from linux/icmpv6.h. The bytes can be passed to + * methods like {@link Os#sendto(FileDescriptor, byte[], int, int, int, SocketAddress)}. * * @hide */ -public final class StructIcmpHdr { - private byte[] packet; +public final class IcmpHeaders { - private StructIcmpHdr() { - packet = new byte[8]; - } + private IcmpHeaders() {} - /* - * Echo or Echo Reply Message + /** + * Creates the header bytes for an {@link OsConstants#ICMP_ECHO} or + * {@link OsConstants#ICMP6_ECHO_REQUEST} message. Code, checksum and identifier are left as + * zeros. * + * <pre> * 0 1 2 3 * 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ @@ -42,21 +46,16 @@ public final class StructIcmpHdr { * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ * | Identifier | Sequence Number | * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ - * | Data ... - * +-+-+-+-+- + * </pre> */ - public static StructIcmpHdr IcmpEchoHdr(boolean ipv4, int seq) { - StructIcmpHdr hdr = new StructIcmpHdr(); - hdr.packet[0] = ipv4 ? (byte) ICMP_ECHO : (byte) ICMP6_ECHO_REQUEST; + public static byte[] createIcmpEchoHdr(boolean ipv4, int seq) { + byte[] bytes = new byte[8]; + bytes[0] = ipv4 ? (byte) ICMP_ECHO : (byte) ICMP6_ECHO_REQUEST; // packet[1]: Code is always zero. // packet[2,3]: Checksum is computed by kernel. // packet[4,5]: ID (= port) inserted by kernel. - hdr.packet[6] = (byte) (seq >> 8); - hdr.packet[7] = (byte) seq; - return hdr; - } - - public byte[] getBytes() { - return packet.clone(); + bytes[6] = (byte) (seq >> 8); + bytes[7] = (byte) seq; + return bytes; } } diff --git a/luni/src/main/java/android/system/Int32Ref.java b/luni/src/main/java/android/system/Int32Ref.java index 8f4a9496ef..8ffcfc5f25 100644 --- a/luni/src/main/java/android/system/Int32Ref.java +++ b/luni/src/main/java/android/system/Int32Ref.java @@ -16,6 +16,8 @@ package android.system; +import libcore.util.Objects; + import dalvik.annotation.compat.UnsupportedAppUsage; /** @@ -32,4 +34,8 @@ public class Int32Ref { public Int32Ref(int value) { this.value = value; } + + @Override public String toString() { + return Objects.toString(this); + } } diff --git a/luni/src/main/java/android/system/Int64Ref.java b/luni/src/main/java/android/system/Int64Ref.java index f42450d868..77edaf0876 100644 --- a/luni/src/main/java/android/system/Int64Ref.java +++ b/luni/src/main/java/android/system/Int64Ref.java @@ -16,6 +16,8 @@ package android.system; +import libcore.util.Objects; + /** * A signed 64bit integer reference suitable for passing to lower-level system calls. */ @@ -25,4 +27,8 @@ public class Int64Ref { public Int64Ref(long value) { this.value = value; } + + @Override public String toString() { + return Objects.toString(this); + } } diff --git a/luni/src/main/java/android/system/StructIfaddrs.java b/luni/src/main/java/android/system/StructIfaddrs.java index 7769f282a2..81d180abf5 100644 --- a/luni/src/main/java/android/system/StructIfaddrs.java +++ b/luni/src/main/java/android/system/StructIfaddrs.java @@ -16,6 +16,8 @@ package android.system; +import libcore.util.Objects; + import java.net.InetAddress; /** @@ -44,4 +46,8 @@ public final class StructIfaddrs { this.ifa_broadaddr = ifa_broadaddr; this.hwaddr = hwaddr; } + + @Override public String toString() { + return Objects.toString(this); + } } diff --git a/luni/src/main/java/android/system/UnixSocketAddress.java b/luni/src/main/java/android/system/UnixSocketAddress.java index be689b36de..bd211eff4a 100644 --- a/luni/src/main/java/android/system/UnixSocketAddress.java +++ b/luni/src/main/java/android/system/UnixSocketAddress.java @@ -35,7 +35,7 @@ public final class UnixSocketAddress extends SocketAddress { // 1) pathname: 0 < sun_path.length <= NAMED_PATH_LENGTH, sun_path[0] != 0. // 2) unnamed: sun_path = []. // 3) abstract: 0 < sun_path.length <= NAMED_PATH_LENGTH, sun_path[0] == 0. - private byte[] sun_path; + private final byte[] sun_path; /** This constructor is also used from JNI. */ private UnixSocketAddress(byte[] sun_path) { diff --git a/non_openjdk_java_files.bp b/non_openjdk_java_files.bp index b726f7f5e9..db9e35c2f3 100644 --- a/non_openjdk_java_files.bp +++ b/non_openjdk_java_files.bp @@ -3,6 +3,7 @@ filegroup { srcs: [ "luni/src/main/java/android/system/ErrnoException.java", "luni/src/main/java/android/system/GaiException.java", + "luni/src/main/java/android/system/IcmpHeaders.java", "luni/src/main/java/android/system/Int32Ref.java", "luni/src/main/java/android/system/Int64Ref.java", "luni/src/main/java/android/system/NetlinkSocketAddress.java", @@ -13,7 +14,6 @@ filegroup { "luni/src/main/java/android/system/StructCapUserData.java", "luni/src/main/java/android/system/StructCapUserHeader.java", "luni/src/main/java/android/system/StructGroupReq.java", - "luni/src/main/java/android/system/StructIcmpHdr.java", "luni/src/main/java/android/system/StructIfaddrs.java", "luni/src/main/java/android/system/StructLinger.java", "luni/src/main/java/android/system/StructPasswd.java", diff --git a/ojluni/src/main/java/java/net/Inet6AddressImpl.java b/ojluni/src/main/java/java/net/Inet6AddressImpl.java index bb722f3df2..29ccda2a54 100644 --- a/ojluni/src/main/java/java/net/Inet6AddressImpl.java +++ b/ojluni/src/main/java/java/net/Inet6AddressImpl.java @@ -27,7 +27,7 @@ package java.net; import android.system.ErrnoException; import android.system.GaiException; import android.system.StructAddrinfo; -import android.system.StructIcmpHdr; +import android.system.IcmpHeaders; import dalvik.system.BlockGuard; @@ -263,7 +263,7 @@ class Inet6AddressImpl implements InetAddressImpl { IoBridge.setSocketOption(fd, SocketOptions.SO_TIMEOUT, sockTo); - packet = StructIcmpHdr.IcmpEchoHdr(isIPv4, seq).getBytes(); + packet = IcmpHeaders.createIcmpEchoHdr(isIPv4, seq); IoBridge.sendto(fd, packet, 0, packet.length, 0, addr, 0); final int icmpId = IoBridge.getLocalInetSocketAddress(fd).getPort(); |