diff options
| author | Paul Jensen <pauljensen@google.com> | 2014-06-20 13:58:14 -0400 |
|---|---|---|
| committer | Paul Jensen <pauljensen@google.com> | 2014-06-26 16:33:58 +0000 |
| commit | 32a58f00d388584f5f47c0d5d4c74ce7c8457d78 (patch) | |
| tree | 8513eee3b5d8567039c142a90c86529f0db636f9 /core/java/android | |
| parent | 9a22972080f8331ee779db3b15e76575a9b08ea9 (diff) | |
| download | frameworks_base-32a58f00d388584f5f47c0d5d4c74ce7c8457d78.zip frameworks_base-32a58f00d388584f5f47c0d5d4c74ce7c8457d78.tar.gz frameworks_base-32a58f00d388584f5f47c0d5d4c74ce7c8457d78.tar.bz2 | |
Use return values from JNI functions binding sockets and processes to networks.
bug:15757549
Change-Id: If23b14febc923b9a0348f0cf9029fd4bf6e8d725
Diffstat (limited to 'core/java/android')
| -rw-r--r-- | core/java/android/net/ConnectivityManager.java | 12 | ||||
| -rw-r--r-- | core/java/android/net/Network.java | 5 | ||||
| -rw-r--r-- | core/java/android/net/NetworkUtils.java | 10 |
3 files changed, 13 insertions, 14 deletions
diff --git a/core/java/android/net/ConnectivityManager.java b/core/java/android/net/ConnectivityManager.java index b68ce36..396efff 100644 --- a/core/java/android/net/ConnectivityManager.java +++ b/core/java/android/net/ConnectivityManager.java @@ -2372,12 +2372,10 @@ public class ConnectivityManager { */ public static boolean setProcessDefaultNetwork(Network network) { if (network == null) { - NetworkUtils.unbindProcessToNetwork(); + return NetworkUtils.unbindProcessToNetwork(); } else { - NetworkUtils.bindProcessToNetwork(network.netId); + return NetworkUtils.bindProcessToNetwork(network.netId); } - // TODO fix return value - return true; } /** @@ -2404,11 +2402,9 @@ public class ConnectivityManager { */ public static boolean setProcessDefaultNetworkForHostResolution(Network network) { if (network == null) { - NetworkUtils.unbindProcessToNetworkForHostResolution(); + return NetworkUtils.unbindProcessToNetworkForHostResolution(); } else { - NetworkUtils.bindProcessToNetworkForHostResolution(network.netId); + return NetworkUtils.bindProcessToNetworkForHostResolution(network.netId); } - // TODO hook up the return value. - return true; } } diff --git a/core/java/android/net/Network.java b/core/java/android/net/Network.java index 0a422c6..9a22d78 100644 --- a/core/java/android/net/Network.java +++ b/core/java/android/net/Network.java @@ -24,6 +24,7 @@ import java.io.IOException; import java.net.InetAddress; import java.net.InetSocketAddress; import java.net.Socket; +import java.net.SocketException; import java.net.UnknownHostException; import javax.net.SocketFactory; @@ -148,7 +149,9 @@ public class Network implements Parcelable { // Query a property of the underlying socket to ensure the underlying // socket exists so a file descriptor is available to bind to a network. socket.getReuseAddress(); - NetworkUtils.bindSocketToNetwork(socket.getFileDescriptor$().getInt$(), mNetId); + if (!NetworkUtils.bindSocketToNetwork(socket.getFileDescriptor$().getInt$(), mNetId)) { + throw new SocketException("Failed to bind socket to network."); + } return socket; } } diff --git a/core/java/android/net/NetworkUtils.java b/core/java/android/net/NetworkUtils.java index 15c0a71..c4b17b6 100644 --- a/core/java/android/net/NetworkUtils.java +++ b/core/java/android/net/NetworkUtils.java @@ -118,13 +118,13 @@ public class NetworkUtils { * is by design so an application doesn't accidentally use sockets it thinks are still bound to * a particular {@code Network}. */ - public native static void bindProcessToNetwork(int netId); + public native static boolean bindProcessToNetwork(int netId); /** * Clear any process specific {@code Network} binding. This reverts a call to * {@link #bindProcessToNetwork}. */ - public native static void unbindProcessToNetwork(); + public native static boolean unbindProcessToNetwork(); /** * Return the netId last passed to {@link #bindProcessToNetwork}, or NETID_UNSET if @@ -138,7 +138,7 @@ public class NetworkUtils { * * @deprecated This is strictly for legacy usage to support startUsingNetworkFeature(). */ - public native static void bindProcessToNetworkForHostResolution(int netId); + public native static boolean bindProcessToNetworkForHostResolution(int netId); /** * Clears any process specific {@link Network} binding for host resolution. This does @@ -146,13 +146,13 @@ public class NetworkUtils { * * @deprecated This is strictly for legacy usage to support startUsingNetworkFeature(). */ - public native static void unbindProcessToNetworkForHostResolution(); + public native static boolean unbindProcessToNetworkForHostResolution(); /** * Explicitly binds {@code socketfd} to the network designated by {@code netId}. This * overrides any binding via {@link #bindProcessToNetwork}. */ - public native static void bindSocketToNetwork(int socketfd, int netId); + public native static boolean bindSocketToNetwork(int socketfd, int netId); /** * Convert a IPv4 address from an integer to an InetAddress. |
