Commit 439e44ae authored by Marcin Siodelski's avatar Marcin Siodelski
Browse files

[3971] Catch exceptions in the CtrlDhcp{4,6}Srv destructors.

parent 747a83bf
......@@ -226,22 +226,29 @@ void ControlledDhcpv4Srv::shutdown() {
}
ControlledDhcpv4Srv::~ControlledDhcpv4Srv() {
cleanup();
// Stop worker thread running timers, if it is running.
timer_mgr_->stopThread();
// Close the command socket (if it exists).
CommandMgr::instance().closeCommandSocket();
// Deregister any registered commands
CommandMgr::instance().deregisterCommand("shutdown");
CommandMgr::instance().deregisterCommand("statistic-get");
CommandMgr::instance().deregisterCommand("statistic-reset");
CommandMgr::instance().deregisterCommand("statistic-remove");
CommandMgr::instance().deregisterCommand("statistic-get-all");
CommandMgr::instance().deregisterCommand("statistic-reset-all");
CommandMgr::instance().deregisterCommand("statistic-remove-all");
try {
cleanup();
// Stop worker thread running timers, if it is running.
timer_mgr_->stopThread();
// Close the command socket (if it exists).
CommandMgr::instance().closeCommandSocket();
// Deregister any registered commands
CommandMgr::instance().deregisterCommand("shutdown");
CommandMgr::instance().deregisterCommand("statistic-get");
CommandMgr::instance().deregisterCommand("statistic-reset");
CommandMgr::instance().deregisterCommand("statistic-remove");
CommandMgr::instance().deregisterCommand("statistic-get-all");
CommandMgr::instance().deregisterCommand("statistic-reset-all");
CommandMgr::instance().deregisterCommand("statistic-remove-all");
} catch (...) {
// Don't want to throw exceptions from the destructor. The server
// is shutting down anyway.
;
}
server_ = NULL; // forget this instance. Noone should call any handlers at
// this stage.
......
......@@ -222,22 +222,29 @@ void ControlledDhcpv6Srv::shutdown() {
}
ControlledDhcpv6Srv::~ControlledDhcpv6Srv() {
cleanup();
// Stop worker thread running timers, if it is running.
timer_mgr_->stopThread();
// Close the command socket (if it exists).
CommandMgr::instance().closeCommandSocket();
// Deregister any registered commands
CommandMgr::instance().deregisterCommand("shutdown");
CommandMgr::instance().deregisterCommand("statistic-get");
CommandMgr::instance().deregisterCommand("statistic-reset");
CommandMgr::instance().deregisterCommand("statistic-remove");
CommandMgr::instance().deregisterCommand("statistic-get-all");
CommandMgr::instance().deregisterCommand("statistic-reset-all");
CommandMgr::instance().deregisterCommand("statistic-remove-all");
try {
cleanup();
// Stop worker thread running timers, if it is running.
timer_mgr_->stopThread();
// Close the command socket (if it exists).
CommandMgr::instance().closeCommandSocket();
// Deregister any registered commands
CommandMgr::instance().deregisterCommand("shutdown");
CommandMgr::instance().deregisterCommand("statistic-get");
CommandMgr::instance().deregisterCommand("statistic-reset");
CommandMgr::instance().deregisterCommand("statistic-remove");
CommandMgr::instance().deregisterCommand("statistic-get-all");
CommandMgr::instance().deregisterCommand("statistic-reset-all");
CommandMgr::instance().deregisterCommand("statistic-remove-all");
} catch (...) {
// Don't want to throw exceptions from the destructor. The server
// is shutting down anyway.
;
}
server_ = NULL; // forget this instance. There should be no callback anymore
// at this stage anyway.
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment