X-Git-Url: http://git.meshlink.io/?a=blobdiff_plain;f=avahi-utils%2Favahi-resolve.c;h=16bb1b59c2e4b5918da815d2ac4180d693592f7b;hb=de6fc99ef5a1767fae07fbea9bc384f512639e57;hp=f63442906087562889a55ced08ed2e00f955704b;hpb=04713ffbe7e9dbaa31e1f887152004fea2cbd7d8;p=catta diff --git a/avahi-utils/avahi-resolve.c b/avahi-utils/avahi-resolve.c index f634429..16bb1b5 100644 --- a/avahi-utils/avahi-resolve.c +++ b/avahi-utils/avahi-resolve.c @@ -43,11 +43,8 @@ #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 \n" + "%s [options] %s \n" "%s [options] %s
\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)