summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Remi NGUYEN VAN <reminv@google.com> 2019-01-29 03:21:22 -0800
committer android-build-merger <android-build-merger@google.com> 2019-01-29 03:21:22 -0800
commitdfa16fe77242511674edb5e55bdf170f8af3c2eb (patch)
tree919478e364db75b9296f37f8249998a4fd64a3ac
parentca1d65e707fe5320233d5e7249555a5662526e93 (diff)
parent1e002eede3944e4327ccc1e39c3f143e3e8dcee4 (diff)
Merge "Add utils connect, setsockopt, bind, sendTo"
am: 1e002eede3 Change-Id: Ida2a99f35affe3cb9213f71ba622ace51c4d6f57
-rw-r--r--api/system-current.txt4
-rw-r--r--api/test-current.txt4
-rw-r--r--core/java/android/net/util/SocketUtils.java33
3 files changed, 41 insertions, 0 deletions
diff --git a/api/system-current.txt b/api/system-current.txt
index ec1c46c34429..e0801b7acbe1 100644
--- a/api/system-current.txt
+++ b/api/system-current.txt
@@ -3476,11 +3476,15 @@ package android.net.util {
method public static void attachControlPacketFilter(java.io.FileDescriptor, int) throws java.net.SocketException;
method public static void attachDhcpFilter(java.io.FileDescriptor) throws java.net.SocketException;
method public static void attachRaFilter(java.io.FileDescriptor, int) throws java.net.SocketException;
+ method public static void bindSocket(java.io.FileDescriptor, java.net.SocketAddress) throws android.system.ErrnoException, java.net.SocketException;
method public static void bindSocketToInterface(java.io.FileDescriptor, String) throws android.system.ErrnoException;
method public static void closeSocket(java.io.FileDescriptor) throws java.io.IOException;
+ method public static void connectSocket(java.io.FileDescriptor, java.net.SocketAddress) throws android.system.ErrnoException, java.net.SocketException;
method public static java.net.SocketAddress makeNetlinkSocketAddress(int, int);
method public static java.net.SocketAddress makePacketSocketAddress(short, int);
method public static java.net.SocketAddress makePacketSocketAddress(int, byte[]);
+ method public static void sendTo(java.io.FileDescriptor, byte[], int, int, int, java.net.SocketAddress) throws android.system.ErrnoException, java.net.SocketException;
+ method public static void setSocketTimeValueOption(java.io.FileDescriptor, int, int, long) throws android.system.ErrnoException;
}
}
diff --git a/api/test-current.txt b/api/test-current.txt
index c5a2a52aeaba..af455fb4abb6 100644
--- a/api/test-current.txt
+++ b/api/test-current.txt
@@ -912,11 +912,15 @@ package android.net.util {
method public static void attachControlPacketFilter(java.io.FileDescriptor, int) throws java.net.SocketException;
method public static void attachDhcpFilter(java.io.FileDescriptor) throws java.net.SocketException;
method public static void attachRaFilter(java.io.FileDescriptor, int) throws java.net.SocketException;
+ method public static void bindSocket(java.io.FileDescriptor, java.net.SocketAddress) throws android.system.ErrnoException, java.net.SocketException;
method public static void bindSocketToInterface(java.io.FileDescriptor, String) throws android.system.ErrnoException;
method public static void closeSocket(java.io.FileDescriptor) throws java.io.IOException;
+ method public static void connectSocket(java.io.FileDescriptor, java.net.SocketAddress) throws android.system.ErrnoException, java.net.SocketException;
method public static java.net.SocketAddress makeNetlinkSocketAddress(int, int);
method public static java.net.SocketAddress makePacketSocketAddress(short, int);
method public static java.net.SocketAddress makePacketSocketAddress(int, byte[]);
+ method public static void sendTo(java.io.FileDescriptor, byte[], int, int, int, java.net.SocketAddress) throws android.system.ErrnoException, java.net.SocketException;
+ method public static void setSocketTimeValueOption(java.io.FileDescriptor, int, int, long) throws android.system.ErrnoException;
}
}
diff --git a/core/java/android/net/util/SocketUtils.java b/core/java/android/net/util/SocketUtils.java
index 2652a7f2193f..fbb15ed693d9 100644
--- a/core/java/android/net/util/SocketUtils.java
+++ b/core/java/android/net/util/SocketUtils.java
@@ -27,6 +27,7 @@ import android.system.ErrnoException;
import android.system.NetlinkSocketAddress;
import android.system.Os;
import android.system.PacketSocketAddress;
+import android.system.StructTimeval;
import libcore.io.IoBridge;
@@ -79,6 +80,38 @@ public class SocketUtils {
}
/**
+ * Set an option on a socket that takes a time value argument.
+ */
+ public static void setSocketTimeValueOption(
+ FileDescriptor fd, int level, int option, long millis) throws ErrnoException {
+ Os.setsockoptTimeval(fd, level, option, StructTimeval.fromMillis(millis));
+ }
+
+ /**
+ * Bind a socket to the specified address.
+ */
+ public static void bindSocket(FileDescriptor fd, SocketAddress addr)
+ throws ErrnoException, SocketException {
+ Os.bind(fd, addr);
+ }
+
+ /**
+ * Connect a socket to the specified address.
+ */
+ public static void connectSocket(FileDescriptor fd, SocketAddress addr)
+ throws ErrnoException, SocketException {
+ Os.connect(fd, addr);
+ }
+
+ /**
+ * Send a message on a socket, using the specified SocketAddress.
+ */
+ public static void sendTo(FileDescriptor fd, byte[] bytes, int byteOffset, int byteCount,
+ int flags, SocketAddress addr) throws ErrnoException, SocketException {
+ Os.sendto(fd, bytes, byteOffset, byteCount, flags, addr);
+ }
+
+ /**
* @see IoBridge#closeAndSignalBlockedThreads(FileDescriptor)
*/
public static void closeSocket(FileDescriptor fd) throws IOException {