diff options
| author | Sreeram Ramachandran <sreeram@google.com> | 2014-07-02 18:06:34 -0700 |
|---|---|---|
| committer | Sreeram Ramachandran <sreeram@google.com> | 2014-07-02 18:06:34 -0700 |
| commit | 72999d6cfc1df23cd911b85730f1f532fb62bed4 (patch) | |
| tree | 38da5d461b954356b3b028082934004fc931d958 /server/RouteController.cpp | |
| parent | d36c49c1d66585769d33d95f0eb2c9c524b337a4 (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.cpp | 12 |
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, |
