]> git.ipfire.org Git - thirdparty/kea.git/commitdiff
[#30,!37] Better exception handling.
authorTomek Mrugalski <tomasz@isc.org>
Wed, 10 Oct 2018 11:17:25 +0000 (13:17 +0200)
committerFrancis Dupont <fdupont@isc.org>
Thu, 27 Dec 2018 20:00:19 +0000 (21:00 +0100)
src/bin/d2/main.cc

index c9beb40f7b6581cad45c4dd75846fd31323b0506..52b19a058ea011fd361dcfe8d77336ac1d90c1e7 100644 (file)
@@ -25,14 +25,16 @@ using namespace std;
 int main(int argc, char* argv[]) {
     int ret = EXIT_SUCCESS;
 
-    // Instantiate/fetch the DHCP-DDNS application controller singleton.
-    DControllerBasePtr& controller = D2Controller::instance();
-
     // Launch the controller passing in command line arguments.
     // Exit program with the controller's return code.
     try  {
+        // Instantiate/fetch the DHCP-DDNS application controller singleton.
+        DControllerBasePtr& controller = D2Controller::instance();
+
         // 'false' value disables test mode.
         controller->launch(argc, argv, false);
+
+        boost::dynamic_pointer_cast<D2Controller>(controller)->d2ShutdownHandler();
     } catch (const VersionMessage& ex) {
         std::string msg(ex.what());
         if (!msg.empty()) {
@@ -49,7 +51,6 @@ int main(int argc, char* argv[]) {
         ret = EXIT_FAILURE;
     }
 
-    boost::dynamic_pointer_cast<D2Controller>(controller)->d2ShutdownHandler();
 
     return (ret);
 }