summaryrefslogtreecommitdiffstats
path: root/server/RouteController.cpp
diff options
context:
space:
mode:
authorSreeram Ramachandran <sreeram@google.com>2014-10-30 10:01:07 -0700
committerSreeram Ramachandran <sreeram@google.com>2014-10-30 17:42:46 +0000
commit64166e7666e3cc7f4b9c715f2b4e19d28ae44c5a (patch)
treefe9c0bcdcc7839fac97cff453a8cbacc66fa0d93 /server/RouteController.cpp
parent2b8d1ead4ea2ff8cb5af1ce88033a8ea0d691402 (diff)
downloadplatform_system_netd-64166e7666e3cc7f4b9c715f2b4e19d28ae44c5a.tar.gz
platform_system_netd-64166e7666e3cc7f4b9c715f2b4e19d28ae44c5a.tar.bz2
platform_system_netd-64166e7666e3cc7f4b9c715f2b4e19d28ae44c5a.zip
Don't fail when trying to add routes that already exist.
Previously, we suppressed failures for the special case of requestRouteToHost() being called multiple times. Turns out that other parts of the system also try to add duplicate routes, so just suppress EEXIST errors in general (as far as adding routes is concerned). For example, this happens when the WiFi P2P DHCP client renews its lease and blindly requests to add a route that it had already added before. Bug: 17205769 Change-Id: I3de557ddb82c95899623aa31b4b3ec7c955f5609
Diffstat (limited to 'server/RouteController.cpp')
-rw-r--r--server/RouteController.cpp7
1 files changed, 2 insertions, 5 deletions
diff --git a/server/RouteController.cpp b/server/RouteController.cpp
index 140c0d37f..c3a600d92 100644
--- a/server/RouteController.cpp
+++ b/server/RouteController.cpp
@@ -813,11 +813,8 @@ WARN_UNUSED_RESULT int modifyRoute(uint16_t action, const char* interface, const
}
int ret = modifyIpRoute(action, table, interface, destination, nexthop);
- // We allow apps to call requestRouteToHost() multiple times with the same route, so ignore
- // EEXIST failures when adding routes to legacy tables.
- if (ret && !(action == RTM_NEWROUTE && ret == -EEXIST &&
- (tableType == RouteController::LEGACY_NETWORK ||
- tableType == RouteController::LEGACY_SYSTEM))) {
+ // Trying to add a route that already exists shouldn't cause an error.
+ if (ret && !(action == RTM_NEWROUTE && ret == -EEXIST)) {
return ret;
}