From 65743a26ad565c55512b5ee6dde73a80a8fea1b5 Mon Sep 17 00:00:00 2001 From: Paul Jensen Date: Fri, 11 Jul 2014 08:17:29 -0400 Subject: [PATCH] Define NETID_UNSET in ConnectivityManager. This allows some cleanup and removal of dead code. bug:15489928 Change-Id: Iaf0507bc2e8ec6dcc253f01f61c5b221d46581f9 --- .../java/android/net/ConnectivityManager.java | 27 ++++++++----------- core/java/android/net/NetworkUtils.java | 19 +++---------- core/jni/android_net_NetUtils.cpp | 12 --------- .../android/server/ConnectivityService.java | 8 +++--- 4 files changed, 17 insertions(+), 49 deletions(-) diff --git a/core/java/android/net/ConnectivityManager.java b/core/java/android/net/ConnectivityManager.java index a7e03fc7b4..f5e875dddf 100644 --- a/core/java/android/net/ConnectivityManager.java +++ b/core/java/android/net/ConnectivityManager.java @@ -529,11 +529,6 @@ public class ConnectivityManager { */ public static final int CONNECTIVITY_CHANGE_DELAY_DEFAULT = 3000; - /** - * @hide - */ - public final static int INVALID_NET_ID = 0; - /** * @hide */ @@ -2508,13 +2503,16 @@ public class ConnectivityManager { * @return {@code true} on success, {@code false} if the {@link Network} is no longer valid. */ public static boolean setProcessDefaultNetwork(Network network) { - if (network == null) { - return NetworkUtils.unbindProcessToNetwork(); - } else { - return NetworkUtils.bindProcessToNetwork(network.netId); - } + return NetworkUtils.bindProcessToNetwork(network == null ? NETID_UNSET : network.netId); } + /** + * A NetID indicating no Network is selected. + * Keep in sync with bionic/libc/dns/include/resolv_netid.h + * @hide + */ + public static final int NETID_UNSET = 0; + /** * Returns the {@link Network} currently bound to this process via * {@link #setProcessDefaultNetwork}, or {@code null} if no {@link Network} is explicitly bound. @@ -2523,7 +2521,7 @@ public class ConnectivityManager { */ public static Network getProcessDefaultNetwork() { int netId = NetworkUtils.getNetworkBoundToProcess(); - if (netId == 0) return null; + if (netId == NETID_UNSET) return null; return new Network(netId); } @@ -2538,10 +2536,7 @@ public class ConnectivityManager { * @deprecated This is strictly for legacy usage to support {@link #startUsingNetworkFeature}. */ public static boolean setProcessDefaultNetworkForHostResolution(Network network) { - if (network == null) { - return NetworkUtils.unbindProcessToNetworkForHostResolution(); - } else { - return NetworkUtils.bindProcessToNetworkForHostResolution(network.netId); - } + return NetworkUtils.bindProcessToNetworkForHostResolution( + network == null ? NETID_UNSET : network.netId); } } diff --git a/core/java/android/net/NetworkUtils.java b/core/java/android/net/NetworkUtils.java index aa1e1233f1..af860b0889 100644 --- a/core/java/android/net/NetworkUtils.java +++ b/core/java/android/net/NetworkUtils.java @@ -116,16 +116,10 @@ public class NetworkUtils { * {@link Network#getSocketFactory}) will be bound to this network. Note that if this * {@code Network} ever disconnects all sockets created in this way will cease to work. This * is by design so an application doesn't accidentally use sockets it thinks are still bound to - * a particular {@code Network}. + * a particular {@code Network}. Passing NETID_UNSET clears the binding. */ public native static boolean bindProcessToNetwork(int netId); - /** - * Clear any process specific {@code Network} binding. This reverts a call to - * {@link #bindProcessToNetwork}. - */ - public native static boolean unbindProcessToNetwork(); - /** * Return the netId last passed to {@link #bindProcessToNetwork}, or NETID_UNSET if * {@link #unbindProcessToNetwork} has been called since {@link #bindProcessToNetwork}. @@ -134,20 +128,13 @@ public class NetworkUtils { /** * Binds host resolutions performed by this process to the network designated by {@code netId}. - * {@link #bindProcessToNetwork} takes precedence over this setting. + * {@link #bindProcessToNetwork} takes precedence over this setting. Passing NETID_UNSET clears + * the binding. * * @deprecated This is strictly for legacy usage to support startUsingNetworkFeature(). */ public native static boolean bindProcessToNetworkForHostResolution(int netId); - /** - * Clears any process specific {@link Network} binding for host resolution. This does - * not clear bindings enacted via {@link #bindProcessToNetwork}. - * - * @deprecated This is strictly for legacy usage to support startUsingNetworkFeature(). - */ - public native static boolean unbindProcessToNetworkForHostResolution(); - /** * Explicitly binds {@code socketfd} to the network designated by {@code netId}. This * overrides any binding via {@link #bindProcessToNetwork}. diff --git a/core/jni/android_net_NetUtils.cpp b/core/jni/android_net_NetUtils.cpp index a75d5479e2..2325bc7e9a 100644 --- a/core/jni/android_net_NetUtils.cpp +++ b/core/jni/android_net_NetUtils.cpp @@ -258,11 +258,6 @@ static jboolean android_net_utils_bindProcessToNetwork(JNIEnv *env, jobject thiz return (jboolean) !setNetworkForProcess(netId); } -static jboolean android_net_utils_unbindProcessToNetwork(JNIEnv *env, jobject thiz) -{ - return (jboolean) !setNetworkForProcess(NETID_UNSET); -} - static jint android_net_utils_getNetworkBoundToProcess(JNIEnv *env, jobject thiz) { return getNetworkForProcess(); @@ -274,11 +269,6 @@ static jboolean android_net_utils_bindProcessToNetworkForHostResolution(JNIEnv * return (jboolean) !setNetworkForResolv(netId); } -static jboolean android_net_utils_unbindProcessToNetworkForHostResolution(JNIEnv *env, jobject thiz) -{ - return (jboolean) !setNetworkForResolv(NETID_UNSET); -} - static jboolean android_net_utils_bindSocketToNetwork(JNIEnv *env, jobject thiz, jint socket, jint netId) { @@ -309,9 +299,7 @@ static JNINativeMethod gNetworkUtilMethods[] = { { "markSocket", "(II)V", (void*) android_net_utils_markSocket }, { "bindProcessToNetwork", "(I)Z", (void*) android_net_utils_bindProcessToNetwork }, { "getNetworkBoundToProcess", "()I", (void*) android_net_utils_getNetworkBoundToProcess }, - { "unbindProcessToNetwork", "()Z", (void*) android_net_utils_unbindProcessToNetwork }, { "bindProcessToNetworkForHostResolution", "(I)Z", (void*) android_net_utils_bindProcessToNetworkForHostResolution }, - { "unbindProcessToNetworkForHostResolution", "()Z", (void*) android_net_utils_unbindProcessToNetworkForHostResolution }, { "bindSocketToNetwork", "(II)Z", (void*) android_net_utils_bindSocketToNetwork }, { "protectFromVpn", "(I)Z", (void*)android_net_utils_protectFromVpn }, }; diff --git a/services/core/java/com/android/server/ConnectivityService.java b/services/core/java/com/android/server/ConnectivityService.java index ea05b98e3b..9d5aafba3d 100644 --- a/services/core/java/com/android/server/ConnectivityService.java +++ b/services/core/java/com/android/server/ConnectivityService.java @@ -179,8 +179,6 @@ import javax.net.ssl.HostnameVerifier; import javax.net.ssl.HttpsURLConnection; import javax.net.ssl.SSLSession; -import static android.net.ConnectivityManager.INVALID_NET_ID; - /** * @hide */ @@ -1841,8 +1839,8 @@ public class ConnectivityService extends IConnectivityManager.Stub { final int uid = Binder.getCallingUid(); final long token = Binder.clearCallingIdentity(); try { - LinkProperties lp = null; - int netId = INVALID_NET_ID; + LinkProperties lp; + int netId; synchronized (nai) { lp = nai.linkProperties; netId = nai.network.netId; @@ -2239,7 +2237,7 @@ public class ConnectivityService extends IConnectivityManager.Stub { } catch (Exception e) { loge("Exception removing network: " + e); } finally { - mNetTrackers[prevNetType].setNetId(INVALID_NET_ID); +// mNetTrackers[prevNetType].setNetId(INVALID_NET_ID); } }