summaryrefslogtreecommitdiffstats
path: root/server/RouteController.cpp
diff options
context:
space:
mode:
authorSreeram Ramachandran <sreeram@google.com>2014-10-30 10:01:07 -0700
committerLorenzo Colitti <lorenzo@google.com>2015-01-29 17:40:04 +0900
commit0321315d4e94dacd5ef2e0de217059cbc72d803d (patch)
tree4d89277b199a7eaf09652b82c271cd777524926f /server/RouteController.cpp
parent6ef96c4862428e02a0c4aebbfa1ed0ccbf58b46e (diff)
downloadplatform_system_netd-0321315d4e94dacd5ef2e0de217059cbc72d803d.tar.gz
platform_system_netd-0321315d4e94dacd5ef2e0de217059cbc72d803d.tar.bz2
platform_system_netd-0321315d4e94dacd5ef2e0de217059cbc72d803d.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. (cherry picked from commit 64166e7666e3cc7f4b9c715f2b4e19d28ae44c5a) Bug: 17205769 Change-Id: I11d50052f616cb48a912d647b8024ccef01b736d
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 4cb145b2b..56e3c2866 100644
--- a/server/RouteController.cpp
+++ b/server/RouteController.cpp
@@ -815,11 +815,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;
}