summaryrefslogtreecommitdiff
path: root/server/NetworkController.cpp
diff options
context:
space:
mode:
authorPaul Jensen <pauljensen@google.com>2014-06-12 16:46:37 -0400
committerPaul Jensen <pauljensen@google.com>2014-06-17 16:30:30 +0000
commita561e121c724e9163b2e256e15eef660e3a326da (patch)
tree8490eb9cf8c9f54de243dc1d7787f192bb282f2b /server/NetworkController.cpp
parent5ad1c281da21ebe1863fbad50f7c20dce4f08512 (diff)
Cache interface indices in case interfaces go away.
Without caching them netd will fail to remove rules and routes, for example, when the Bluetooth reverse-tether interface ("bt-pan") goes away. bug:15407087 Change-Id: I99fcf00f9645a0b029455516a705b70110f62ff6
Diffstat (limited to 'server/NetworkController.cpp')
-rw-r--r--server/NetworkController.cpp10
1 files changed, 5 insertions, 5 deletions
diff --git a/server/NetworkController.cpp b/server/NetworkController.cpp
index a32dd670..f5739e95 100644
--- a/server/NetworkController.cpp
+++ b/server/NetworkController.cpp
@@ -250,17 +250,17 @@ bool NetworkController::removeInterfaceFromNetwork(unsigned netId, const char* i
}
Permission permission = mPermissionsController->getPermissionForNetwork(netId);
- if (!mRouteController->removeInterfaceFromNetwork(netId, interface, permission)) {
- ALOGE("failed to remove interface %s from netId %u", interface, netId);
- status = false;
- }
-
if (netId == getDefaultNetwork() &&
!mRouteController->removeFromDefaultNetwork(interface, permission)) {
ALOGE("failed to remove interface %s from default netId %u", interface, netId);
status = false;
}
+ if (!mRouteController->removeInterfaceFromNetwork(netId, interface, permission)) {
+ ALOGE("failed to remove interface %s from netId %u", interface, netId);
+ status = false;
+ }
+
return status;
}