network_manager: Add reload post hooks
We need this to handle deleting interfaces after reloading.
Change-Id: I0f3ca4cedf0e112bc285e4e2ecc1c3cad8ef5677
Signed-off-by: William A. Kennington III <wak@google.com>
diff --git a/src/network_manager.cpp b/src/network_manager.cpp
index 7e540d1..014d0b4 100644
--- a/src/network_manager.cpp
+++ b/src/network_manager.cpp
@@ -517,7 +517,21 @@
{
log<level::ERR>("Failed to reload configuration",
entry("ERR=%s", ex.what()));
+ reloadPostHooks.clear();
}
+ for (auto& hook : reloadPostHooks)
+ {
+ try
+ {
+ hook();
+ }
+ catch (const std::exception& ex)
+ {
+ log<level::ERR>("Failed executing reload hook, ignoring",
+ entry("ERR=%s", ex.what()));
+ }
+ }
+ reloadPostHooks.clear();
}
void Manager::handleAdminState(std::string_view state, unsigned ifidx)