summaryrefslogtreecommitdiff
path: root/server/RouteController.cpp
diff options
context:
space:
mode:
authorSreeram Ramachandran <sreeram@google.com>2014-07-02 18:06:34 -0700
committerSreeram Ramachandran <sreeram@google.com>2014-07-02 18:06:34 -0700
commit72999d6cfc1df23cd911b85730f1f532fb62bed4 (patch)
tree38da5d461b954356b3b028082934004fc931d958 /server/RouteController.cpp
parentd36c49c1d66585769d33d95f0eb2c9c524b337a4 (diff)
Fix regressions in flushRoutes().
http://ag/486276 left out a comma, causing the command to be "routeflush" (which is invalid), instead of the correct "route flush". http://ag/495068 changed the order, causing the interface to be removed from the interfaceToIndex map before we are done using it in modifyPerNetworkRules(). Change-Id: I65af0b5763b13e47b48e7e2b81d243dc19e1a03b
Diffstat (limited to 'server/RouteController.cpp')
-rw-r--r--server/RouteController.cpp12
1 files changed, 6 insertions, 6 deletions
diff --git a/server/RouteController.cpp b/server/RouteController.cpp
index 5d8cc0f9..799a5318 100644
--- a/server/RouteController.cpp
+++ b/server/RouteController.cpp
@@ -567,7 +567,7 @@ WARN_UNUSED_RESULT int flushRoutes(const char* interface) {
const char* argv[] = {
IP_PATH,
IP_VERSIONS[i],
- "route"
+ "route",
"flush",
"table",
tableString,
@@ -642,11 +642,11 @@ int RouteController::addInterfaceToNetwork(unsigned netId, const char* interface
int RouteController::removeInterfaceFromNetwork(unsigned netId, const char* interface,
Permission permission) {
- if (int ret = flushRoutes(interface)) {
+ if (int ret = modifyPerNetworkRules(netId, interface, 0, permission, INVALID_UID, INVALID_UID,
+ false, true)) {
return ret;
}
- return modifyPerNetworkRules(netId, interface, 0, permission, INVALID_UID, INVALID_UID, false,
- true);
+ return flushRoutes(interface);
}
int RouteController::addInterfaceToVpn(unsigned netId, const char* interface,
@@ -656,10 +656,10 @@ int RouteController::addInterfaceToVpn(unsigned netId, const char* interface,
int RouteController::removeInterfaceFromVpn(unsigned netId, const char* interface,
const UidRanges& uidRanges) {
- if (int ret = flushRoutes(interface)) {
+ if (int ret = modifyVpnRules(netId, interface, uidRanges, false, true)) {
return ret;
}
- return modifyVpnRules(netId, interface, uidRanges, false, true);
+ return flushRoutes(interface);
}
int RouteController::modifyNetworkPermission(unsigned netId, const char* interface,