]> git.ipfire.org Git - thirdparty/kea.git/commitdiff
instantiate server with multi-threads
authorRazvan Becheriu <razvan@isc.org>
Mon, 25 Mar 2019 17:02:38 +0000 (19:02 +0200)
committerRazvan Becheriu <razvan@isc.org>
Fri, 12 Apr 2019 12:07:34 +0000 (15:07 +0300)
src/bin/dhcp4/main.cc
src/bin/dhcp6/main.cc

index 7e138ac00db62e65069c29cfbf31c0a91ac54291..2c06d88ffe6bfdc86e2cdacb507b3b33b92ddbf8 100644 (file)
@@ -31,6 +31,9 @@ using namespace std;
 /// instantiates ControlledDhcpv4Srv class that is responsible for establishing
 /// connection with msgq (receiving commands and configuration) and also
 /// creating Dhcpv4 server object as well.
+///
+/// For detailed explanation or relations between main(), ControlledDhcpv4Srv,
+/// Dhcpv4Srv and other classes, see \ref dhcpv4Session.
 
 namespace {
 
@@ -57,7 +60,7 @@ usage() {
          << "(useful for testing only)" << endl;
     exit(EXIT_FAILURE);
 }
-} // end of anonymous namespace
+}  // namespace
 
 int
 main(int argc, char* argv[]) {
@@ -98,7 +101,7 @@ main(int argc, char* argv[]) {
             config_file = optarg;
             break;
 
-        case 'p':
+        case 'p': // server port number
             try {
                 server_port_number = boost::lexical_cast<int>(optarg);
             } catch (const boost::bad_lexical_cast &) {
@@ -113,7 +116,7 @@ main(int argc, char* argv[]) {
             }
             break;
 
-        case 'P':
+        case 'P': // client port number
             try {
                 client_port_number = boost::lexical_cast<int>(optarg);
             } catch (const boost::bad_lexical_cast &) {
@@ -138,7 +141,6 @@ main(int argc, char* argv[]) {
         usage();
     }
 
-
     // Configuration file is required.
     if (config_file.empty()) {
         cerr << "Configuration file not specified." << endl;
@@ -150,7 +152,6 @@ main(int argc, char* argv[]) {
 
     if (check_mode) {
         try {
-
             // We need to initialize logging, in case any error messages are to be printed.
             // This is just a test, so we don't care about lockfile.
             setenv("KEA_LOCKFILE_DIR", "none", 0);
@@ -214,12 +215,12 @@ main(int argc, char* argv[]) {
         LOG_INFO(dhcp4_logger, DHCP4_STARTING).arg(VERSION);
 
         // Create the server instance.
-        ControlledDhcpv4Srv server(server_port_number, client_port_number);
+        ControlledDhcpv4Srv server(server_port_number, client_port_number, true);
 
         // Remember verbose-mode
         server.setVerbose(verbose_mode);
 
-        // Create our PID file.
+        // Create our PID file
         server.setProcName(DHCP4_NAME);
         server.setConfigFile(config_file);
         server.createPIDFile();
index 6f44221f5e8946308f13f06265b54e3d8cfa0daa..78ecfe384b95638b56b4189d562cfcbd9019ffc4 100644 (file)
@@ -62,7 +62,7 @@ usage() {
          << "(useful for testing only)" << endl;
     exit(EXIT_FAILURE);
 }
-} // end of anonymous namespace
+}  // namespace
 
 int
 main(int argc, char* argv[]) {
@@ -193,11 +193,8 @@ main(int argc, char* argv[]) {
                 cerr << "Error encountered: " << answer->stringValue() << endl;
                 return (EXIT_FAILURE);
             }
-
-
-            return (EXIT_SUCCESS);
         } catch (const std::exception& ex) {
-            cerr << "Syntax check failed with " << ex.what() << endl;
+            cerr << "Syntax check failed with: " << ex.what() << endl;
         }
         return (EXIT_FAILURE);
     }
@@ -211,7 +208,6 @@ main(int argc, char* argv[]) {
 
         // Initialize logging.  If verbose, we'll use maximum verbosity.
         Daemon::loggerInit(DHCP6_LOGGER_NAME, verbose_mode);
-
         LOG_DEBUG(dhcp6_logger, DBG_DHCP6_START, DHCP6_START_INFO)
             .arg(getpid())
             .arg(server_port_number)
@@ -221,7 +217,7 @@ main(int argc, char* argv[]) {
         LOG_INFO(dhcp6_logger, DHCP6_STARTING).arg(VERSION);
 
         // Create the server instance.
-        ControlledDhcpv6Srv server(server_port_number, client_port_number);
+        ControlledDhcpv6Srv server(server_port_number, client_port_number, true);
 
         // Remember verbose-mode
         server.setVerbose(verbose_mode);
@@ -232,10 +228,8 @@ main(int argc, char* argv[]) {
         server.createPIDFile();
 
         try {
-            // Initialize the server, e.g. establish control session
-            // Read a configuration file
+            // Initialize the server.
             server.init(config_file);
-
         } catch (const std::exception& ex) {
 
             try {
@@ -245,8 +239,8 @@ main(int argc, char* argv[]) {
                 LOG_ERROR(dhcp6_logger, DHCP6_INIT_FAIL).arg(ex.what());
             } catch (...) {
                 // The exception thrown during the initialization could
-                // originate from logger subsystem. Therefore LOG_ERROR() may
-                // fail as well.
+                // originate from logger subsystem. Therefore LOG_ERROR()
+                // may fail as well.
                 cerr << "Failed to initialize server: " << ex.what() << endl;
             }
 
@@ -277,7 +271,6 @@ main(int argc, char* argv[]) {
         }
         ret = EXIT_FAILURE;
     } catch (const std::exception& ex) {
-
         // First, we print the error on stderr (that should always work)
         cerr << DHCP6_NAME << "Fatal error during start up: " << ex.what()
              << endl;