diff options
| author | Odd Stranne <odd@mullvad.net> | 2020-01-30 22:08:22 +0100 |
|---|---|---|
| committer | Odd Stranne <odd@mullvad.net> | 2020-02-03 13:42:46 +0100 |
| commit | ef0f72c6c9a2e3ee01ef35c45ce3414a0ada5efa (patch) | |
| tree | 6fff388e91eed30ac190797cff720232583f3fcc | |
| parent | 3e141b7dfde547bd0491198cdca0d982b824d829 (diff) | |
| download | mullvadvpn-ef0f72c6c9a2e3ee01ef35c45ce3414a0ada5efa.tar.xz mullvadvpn-ef0f72c6c9a2e3ee01ef35c45ce3414a0ada5efa.zip | |
Remove specialized functions
| -rw-r--r-- | windows/winnet/src/winnet/routing/routemanager.cpp | 80 | ||||
| -rw-r--r-- | windows/winnet/src/winnet/routing/routemanager.h | 3 | ||||
| -rw-r--r-- | windows/winnet/src/winnet/winnet.cpp | 52 |
3 files changed, 2 insertions, 133 deletions
diff --git a/windows/winnet/src/winnet/routing/routemanager.cpp b/windows/winnet/src/winnet/routing/routemanager.cpp index 166dbf8dcf..edcb594ff1 100644 --- a/windows/winnet/src/winnet/routing/routemanager.cpp +++ b/windows/winnet/src/winnet/routing/routemanager.cpp @@ -275,66 +275,6 @@ void RouteManager::addRoutes(const std::vector<Route> &routes) } } -void RouteManager::addRoute(const Route &route) -{ - AutoLockType lock(m_routesLock); - - std::optional<RouteRecord> deletedRecord; - - auto record = findRouteRecord(route); - - if (record != m_routes.end()) - { - try - { - deleteFromRoutingTable(record->registeredRoute); - } - catch (...) - { - THROW_ERROR("Failed to evict old route when adding new route"); - } - - deletedRecord = *record; - m_routes.erase(record); - } - - try - { - m_routes.emplace_back - ( - RouteRecord{ route, addIntoRoutingTable(route) } - ); - } - catch (...) - { - // - // Restore deleted record. - // - - if (deletedRecord.has_value()) - { - auto &r = deletedRecord.value(); - - try - { - restoreIntoRoutingTable(r.registeredRoute); - m_routes.emplace_back(r); - } - catch (const std::exception &ex) - { - const auto err = std::string("Failed to restore evicted route during rollback: ").append(ex.what()); - m_logSink->error(err.c_str()); - } - } - - // - // Just rethrow because the error is from addIntoRoutingTable(). - // - - throw; - } -} - void RouteManager::deleteRoutes(const std::vector<Route> &routes) { AutoLockType lock(m_routesLock); @@ -370,26 +310,6 @@ void RouteManager::deleteRoutes(const std::vector<Route> &routes) } } -void RouteManager::deleteRoute(const Route &route) -{ - AutoLockType lock(m_routesLock); - - auto record = findRouteRecord(route); - - if (m_routes.end() == record) - { - const auto err = std::wstring(L"Request to delete previously unregistered route: ") - .append(FormatNetwork(route.network())); - - m_logSink->warning(common::string::ToAnsi(err).c_str()); - - return; - } - - deleteFromRoutingTable(record->registeredRoute); - m_routes.erase(record); -} - RouteManager::CallbackHandle RouteManager::registerDefaultRouteChangedCallback(DefaultRouteChangedCallback callback) { AutoRecursiveLockType lock(m_defaultRouteCallbacksLock); diff --git a/windows/winnet/src/winnet/routing/routemanager.h b/windows/winnet/src/winnet/routing/routemanager.h index 981c8e6834..f8a58b4443 100644 --- a/windows/winnet/src/winnet/routing/routemanager.h +++ b/windows/winnet/src/winnet/routing/routemanager.h @@ -30,10 +30,7 @@ public: RouteManager &operator=(RouteManager &&) = delete; void addRoutes(const std::vector<Route> &routes); - void addRoute(const Route &route); - void deleteRoutes(const std::vector<Route> &routes); - void deleteRoute(const Route &route); using DefaultRouteChangedEventType = DefaultRouteMonitor::EventType; diff --git a/windows/winnet/src/winnet/winnet.cpp b/windows/winnet/src/winnet/winnet.cpp index 79ba77a229..5dafc790e8 100644 --- a/windows/winnet/src/winnet/winnet.cpp +++ b/windows/winnet/src/winnet/winnet.cpp @@ -428,31 +428,7 @@ WinNet_AddRoute( const WINNET_ROUTE *route
)
{
- AutoLockType lock(g_RouteManagerLock);
-
- if (nullptr == g_RouteManager)
- {
- return false;
- }
-
- try
- {
- g_RouteManager->addRoute
- (
- Route{ ConvertNetwork(route->network), ConvertNode(route->node) }
- );
-
- return true;
- }
- catch (const std::exception &err)
- {
- common::error::UnwindException(err, g_RouteManagerLogSink);
- return false;
- }
- catch (...)
- {
- return false;
- }
+ return WinNet_AddRoutes(route, 1);
}
extern "C"
@@ -495,31 +471,7 @@ WinNet_DeleteRoute( const WINNET_ROUTE *route
)
{
- AutoLockType lock(g_RouteManagerLock);
-
- if (nullptr == g_RouteManager)
- {
- return false;
- }
-
- try
- {
- g_RouteManager->deleteRoute
- (
- Route{ ConvertNetwork(route->network), ConvertNode(route->node) }
- );
-
- return true;
- }
- catch (const std::exception &err)
- {
- common::error::UnwindException(err, g_RouteManagerLogSink);
- return false;
- }
- catch (...)
- {
- return false;
- }
+ return WinNet_DeleteRoutes(route, 1);
}
extern "C"
|
