Showing 1 changed files with 16 additions and 3 deletions
+16 -3
tinydns.c
... ...
@@ -90,6 +90,16 @@ unsigned char* read_dns_name(unsigned char *reader, unsigned char *buffer, char
90 90
     return reader;
91 91
 }
92 92
 
93
+void help() {
94
+  printf("Usage: tinydns -h <IP> [-p] [-t|-u] [--time] -q type fqdn\n");
95
+  printf("  server : DNS Server IP address\n");
96
+  printf("  -p : port (optional, default is 53)\n");
97
+  printf("  -u udp (default) or -t tcp\n");
98
+  printf("  type : query type A (default), AAAA, CNAME or MX\n");
99
+  printf("  --time: to produce timing CSV output\n");
100
+  printf("  fqdn : what to query\n");
101
+}
102
+
93 103
 int main(int argc, char *argv[]) {
94 104
     int opt, use_tcp = 0, time_mode = 0;
95 105
     char *dns_server = NULL;
... ...
@@ -114,14 +124,17 @@ int main(int argc, char *argv[]) {
114 124
             case 'p': dns_port = atoi(optarg); break;
115 125
             case 'q': qtype_str = optarg; break;
116 126
             default:
117
-                fprintf(stderr, "Usage: %s [-u|-t] -h server [-p port] -q type [--time] fqdn\n", argv[0]);
127
+                //fprintf(stderr, "Usage: %s [-u|-t] -h server [-p port] -q type [--time] fqdn\n", argv[0]);
128
+                help();
118 129
                 exit(EXIT_FAILURE);
119 130
         }
120 131
     }
121 132
 
122
-    if (optind >= argc) { fprintf(stderr, "FQDN is required\n"); exit(EXIT_FAILURE); }
133
+    //if (optind >= argc) { fprintf(stderr, "FQDN is required\n"); exit(EXIT_FAILURE); }
134
+    if (optind >= argc) { help(); exit(EXIT_FAILURE); }
123 135
     fqdn = argv[optind];
124
-    if (!dns_server) { fprintf(stderr, "DNS server (-h) is required\n"); exit(EXIT_FAILURE); }
136
+    //if (!dns_server) { fprintf(stderr, "DNS server (-h) is required\n"); exit(EXIT_FAILURE); }
137
+    if (!dns_server) { help(); exit(EXIT_FAILURE); }
125 138
 
126 139
     gettimeofday(&start_tv, NULL);
127 140
     start_epoch = start_tv.tv_sec;