diff --git a/tools/tools_common.h b/tools/tools_common.h index 144bd521f394536cb9725f9b42f74f2902b8e614..23b738ad93dd723040800b74e37e8fb031d97541 100644 --- a/tools/tools_common.h +++ b/tools/tools_common.h @@ -162,14 +162,14 @@ dht_params parseArgs(int argc, char **argv) { dht_params params; int opt; - while ((opt = getopt_long(argc, argv, ":hidv:p:b:", long_options, nullptr)) != -1) { + while ((opt = getopt_long(argc, argv, "hidv::p:n:b::", long_options, nullptr)) != -1) { switch (opt) { case 'p': { int port_arg = atoi(optarg); if (port_arg >= 0 && port_arg < 0x10000) params.port = port_arg; else - std::cout << "Invalid port: " << port_arg << std::endl; + std::cerr << "Invalid port: " << port_arg << std::endl; } break; case 'b': @@ -180,8 +180,7 @@ parseArgs(int argc, char **argv) { ss << DHT_DEFAULT_PORT; params.bootstrap.second = ss.str(); } - } - else + } else params.is_bootstrap_node = true; break; case 'h': @@ -198,19 +197,9 @@ parseArgs(int argc, char **argv) { case 'd': params.daemonize = true; break; - case ':': - switch (optopt) { - case 'b': - params.is_bootstrap_node = true; - break; - case 'v': - params.log = true; - break; - default: - std::cout << "option requires an argument -- '" << optopt << '\'' << std::endl; - break; - } - break; + case '?': + std::cerr << "unrecognized option -- '" << static_cast<char>(optopt) << '\'' << std::endl; + exit(EXIT_FAILURE); default: break; }