summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorOdd Stranne <odd@mullvad.net>2020-01-30 22:08:22 +0100
committerOdd Stranne <odd@mullvad.net>2020-02-03 13:42:46 +0100
commitef0f72c6c9a2e3ee01ef35c45ce3414a0ada5efa (patch)
tree6fff388e91eed30ac190797cff720232583f3fcc
parent3e141b7dfde547bd0491198cdca0d982b824d829 (diff)
downloadmullvadvpn-ef0f72c6c9a2e3ee01ef35c45ce3414a0ada5efa.tar.xz
mullvadvpn-ef0f72c6c9a2e3ee01ef35c45ce3414a0ada5efa.zip
Remove specialized functions
-rw-r--r--windows/winnet/src/winnet/routing/routemanager.cpp80
-rw-r--r--windows/winnet/src/winnet/routing/routemanager.h3
-rw-r--r--windows/winnet/src/winnet/winnet.cpp52
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"