Use the old interface when resetting connections
The new one is often null when disconnected, so using the new fails.
In other situations, it's the connections on the old network we want
to reset anyway, so the old code when it would work would also do
the wrong thing (unless new iface == old iface).
bug:9112928
Change-Id: I1fcae89cc3aa9d712e516e7c97cece0b89869bd9
diff --git a/services/java/com/android/server/ConnectivityService.java b/services/java/com/android/server/ConnectivityService.java
index 3e19094..37a8cb8 100644
--- a/services/java/com/android/server/ConnectivityService.java
+++ b/services/java/com/android/server/ConnectivityService.java
@@ -2261,9 +2261,8 @@
boolean resetDns = updateRoutes(newLp, curLp, mNetConfigs[netType].isDefault());
if (resetMask != 0 || resetDns) {
- LinkProperties linkProperties = mNetTrackers[netType].getLinkProperties();
- if (linkProperties != null) {
- for (String iface : linkProperties.getAllInterfaceNames()) {
+ if (curLp != null) {
+ for (String iface : curLp.getAllInterfaceNames()) {
if (TextUtils.isEmpty(iface) == false) {
if (resetMask != 0) {
if (DBG) log("resetConnections(" + iface + ", " + resetMask + ")");
@@ -2285,6 +2284,8 @@
if (DBG) loge("Exception resetting dns cache: " + e);
}
}
+ } else {
+ loge("Can't reset connection for type "+netType);
}
}
}