]> git.meshlink.io Git - catta/blobdiff - avahi-utils/avahi-resolve.c
split off libavahi-gobject into its own directory
[catta] / avahi-utils / avahi-resolve.c
index f63442906087562889a55ced08ed2e00f955704b..16bb1b59c2e4b5918da815d2ac4180d693592f7b 100644 (file)
 
 #include "sigint.h"
 
-#ifdef HAVE_GDBM
-#include "stdb.h"
-#endif
-
 typedef enum {
+    COMMAND_UNSPEC, 
     COMMAND_HELP,
     COMMAND_VERSION,
     COMMAND_RESOLVE_HOST_NAME,
@@ -158,7 +155,7 @@ static void client_callback(AvahiClient *c, AvahiClientState state, AVAHI_GCC_UN
 
 static void help(FILE *f, const char *argv0) {
     fprintf(f,
-            "%s [options] %s <name ...>\n"
+            "%s [options] %s <host name ...>\n"
             "%s [options] %s <address ... >\n\n"
             "    -h --help            Show this help\n"
             "    -V --version         Show version\n"
@@ -166,13 +163,12 @@ static void help(FILE *f, const char *argv0) {
             "    -a --address         Resolve address\n"
             "    -v --verbose         Enable verbose mode\n"
             "    -6                   Lookup IPv6 address\n"
-            "    -4                   Lookup IPv4 address\n"
-            ,
-            argv0, strstr(argv0, "address") ? "-n" : "[-n]",
+            "    -4                   Lookup IPv4 address\n",
+            argv0, strstr(argv0, "host-name") ? "[-n]" : "-n",
             argv0, strstr(argv0, "address") ? "[-a]" : "-a");
 }
 
-static int parse_command_line(Config *c, int argc, char *argv[]) {
+static int parse_command_line(Config *c, const char *argv0, int argc, char *argv[]) {
     int o;
 
     static const struct option long_options[] = {
@@ -186,11 +182,10 @@ static int parse_command_line(Config *c, int argc, char *argv[]) {
 
     assert(c);
 
-    c->command = strstr(argv[0], "address") ? COMMAND_RESOLVE_ADDRESS : COMMAND_RESOLVE_HOST_NAME;
+    c->command = strstr(argv0, "address") ? COMMAND_RESOLVE_ADDRESS : (strstr(argv0, "host-name") ? COMMAND_RESOLVE_HOST_NAME : COMMAND_UNSPEC);
     c->proto = AVAHI_PROTO_UNSPEC;
     c->verbose = 0;
 
-    opterr = 0;
     while ((o = getopt_long(argc, argv, "hVnav46", long_options, NULL)) >= 0) {
 
         switch(o) {
@@ -216,7 +211,6 @@ static int parse_command_line(Config *c, int argc, char *argv[]) {
                 c->proto = AVAHI_PROTO_INET6;
                 break;
             default:
-                fprintf(stderr, "Invalid command line argument: %c\n", o);
                 return -1;
         }
     }
@@ -241,10 +235,15 @@ int main(int argc, char *argv[]) {
     else
         argv0 = argv[0];
 
-    if (parse_command_line(&config, argc, argv) < 0)
+    if (parse_command_line(&config, argv0, argc, argv) < 0)
         goto fail;
 
     switch (config.command) {
+        case COMMAND_UNSPEC:
+            ret = 1;
+            fprintf(stderr, "No command specified.\n");
+            break;
+            
         case COMMAND_HELP:
             help(stdout, argv0);
             ret = 0;
@@ -324,7 +323,6 @@ int main(int argc, char *argv[]) {
         }
     }
     
-    
 fail:
 
     if (client)