tools: fix dnc argument

Change-Id: I12ac7e224bac1f8225f50d9398a9ff755e73ba29
diff --git a/tools/dnc/main.cpp b/tools/dnc/main.cpp
index b6f4cbe..6f8bad7 100644
--- a/tools/dnc/main.cpp
+++ b/tools/dnc/main.cpp
@@ -46,7 +46,7 @@
 };
 
 static const constexpr struct option long_options[] = {{"help", no_argument, nullptr, 'h'},
-                                                       {"version", no_argument, nullptr, 'V'},
+                                                       {"version", no_argument, nullptr, 'v'},
                                                        {"port", required_argument, nullptr, 'p'},
                                                        {"ip", required_argument, nullptr, 'i'},
                                                        {"listen", no_argument, nullptr, 'l'},
@@ -63,13 +63,12 @@
 {
     dhtnc_params params;
     int opt;
-    while ((opt = getopt_long(argc, argv, "hVlw:r:u:t:I:b:p:i:", long_options, nullptr)) != -1) {
-        // fmt::print("opt: {} {}\n", opt, optarg);
+    while ((opt = getopt_long(argc, argv, "hvlw:r:u:t:I:b:p:i:", long_options, nullptr)) != -1) {
         switch (opt) {
         case 'h':
             params.help = true;
             break;
-        case 'V':
+        case 'v':
             params.version = true;
             break;
         case 'p':
@@ -106,7 +105,7 @@
     }
 
     // If not listening, the peer_id argument is required
-    if (!params.listen) {
+    if (!params.listen && !params.help && !params.version) {
         if (optind < argc) {
             params.peer_id = dht::InfoHash(argv[optind]);
             optind++; // Move to the next argument
@@ -152,9 +151,31 @@
 int
 main(int argc, char** argv)
 {
-    fmt::print("dnc 1.0\n");
     setSipLogLevel();
     auto params = parse_args(argc, argv);
+
+    if (params.help ){
+          fmt::print("Usage: dnc [options] [PEER_ID]\n"
+               "\nOptions:\n"
+               "  -h, --help            Show this help message and exit.\n"
+               "  -v, --version         Display the program version.\n"
+               "  -p, --port            Specify the port option with an argument.\n"
+               "  -i, --ip              Specify the ip option with an argument.\n"
+               "  -l, --listen          Start the program in listen mode.\n"
+               "  -b, --bootstrap       Specify the bootstrap option with an argument.\n"
+               "  -I, --id_path         Specify the id_path option with an argument.\n"
+               "  -t, --turn_host       Specify the turn_host option with an argument.\n"
+               "  -u, --turn_user       Specify the turn_user option with an argument.\n"
+               "  -w, --turn_pass       Specify the turn_pass option with an argument.\n"
+               "  -r, --turn_realm      Specify the turn_realm option with an argument.\n");
+        return EXIT_SUCCESS;
+    }
+    if (params.version) {
+        fmt::print("dnc v1.0\n");
+        return EXIT_SUCCESS;
+    }
+
+    fmt::print("dnc 1.0\n");
     auto identity = dhtnet::loadIdentity(params.path);
     fmt::print("Loaded identity: {} from {}\n", identity.second->getId(), params.path);