summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/main.cpp17
1 files changed, 7 insertions, 10 deletions
diff --git a/src/main.cpp b/src/main.cpp
index 98013eb..cc73244 100644
--- a/src/main.cpp
+++ b/src/main.cpp
@@ -74,11 +74,6 @@ int main(int ac, char** av)
if (hostname.empty())
return config_help("hostname");
- auto p = std::make_shared<Poller>();
- auto xmpp_component = std::make_shared<BiboumiComponent>(p,
- hostname,
- password);
-
// Install the signals used to exit the process cleanly, or reload the
// config
sigset_t mask;
@@ -100,9 +95,11 @@ int main(int ac, char** av)
sigaction(SIGUSR1, &on_sigusr, nullptr);
sigaction(SIGUSR2, &on_sigusr, nullptr);
+ auto p = std::make_shared<Poller>();
+ auto xmpp_component =
+ std::make_shared<BiboumiComponent>(p, hostname, password);
xmpp_component->start();
-
#ifdef CARES_FOUND
DNSHandler::instance.watch_dns_sockets(p);
#endif
@@ -119,10 +116,7 @@ int main(int ac, char** av)
exiting = true;
stop.store(false);
xmpp_component->shutdown();
-#ifdef CARES_FOUND
- DNSHandler::instance.destroy();
-#endif
- // Cancel the timer for an potential reconnection
+ // Cancel the timer for a potential reconnection
TimedEventsManager::instance().cancel("XMPP reconnection");
}
if (reload)
@@ -171,6 +165,9 @@ int main(int ac, char** av)
else
timeout = TimedEventsManager::instance().get_timeout();
}
+#ifdef CARES_FOUND
+ DNSHandler::instance.destroy();
+#endif
log_info("All connections cleanly closed, have a nice day.");
return 0;
}