From: Evan Hunt Date: Fri, 4 Apr 2014 02:34:48 +0000 (-0700) Subject: [master] improve command line error reporting X-Git-Tag: v9.10.0rc1~17 X-Git-Url: http://git.ipfire.org/gitweb/?a=commitdiff_plain;h=44fbdddcadd85a6e40ebc7b7834e08e156c681a1;p=thirdparty%2Fbind9.git [master] improve command line error reporting 3799. [bug] Improve named's command line error reporting. [RT #35603] --- diff --git a/CHANGES b/CHANGES index 8fa5c645f6c..2c73ac8389e 100644 --- a/CHANGES +++ b/CHANGES @@ -1,3 +1,6 @@ +3799. [bug] Improve named's command line error reporting. + [RT #35603] + 3798. [bug] 'rndc zonestatus' was reporting the wrong re-signing time. [RT #35659] diff --git a/bin/named/main.c b/bin/named/main.c index b473732388d..b2104adda75 100644 --- a/bin/named/main.c +++ b/bin/named/main.c @@ -15,8 +15,6 @@ * PERFORMANCE OF THIS SOFTWARE. */ -/* $Id: main.c,v 1.187 2012/02/06 23:46:44 tbox Exp $ */ - /*! \file */ #include @@ -416,16 +414,16 @@ static void parse_command_line(int argc, char *argv[]) { int ch; int port; + const char *p; isc_boolean_t disable6 = ISC_FALSE; isc_boolean_t disable4 = ISC_FALSE; save_command_line(argc, argv); /* PLEASE keep options synchronized when main is hooked! */ +#define CMDLINE_FLAGS "46c:C:d:D:E:fFgi:lm:n:N:p:P:sS:t:T:U:u:vVx:" isc_commandline_errprint = ISC_FALSE; - while ((ch = isc_commandline_parse(argc, argv, - "46c:C:d:D:E:fFgi:lm:n:N:p:P:" - "sS:t:T:U:u:vVx:")) != -1) { + while ((ch = isc_commandline_parse(argc, argv, CMDLINE_FLAGS)) != -1) { switch (ch) { case '4': if (disable4) @@ -614,8 +612,14 @@ parse_command_line(int argc, char *argv[]) { usage(); if (isc_commandline_option == '?') exit(0); - ns_main_earlyfatal("unknown option '-%c'", - isc_commandline_option); + p = strchr(CMDLINE_FLAGS, isc_commandline_option); + if (p == NULL || *++p != ':') + ns_main_earlyfatal("unknown option '-%c'", + isc_commandline_option); + else + ns_main_earlyfatal("option '-%c' requires " + "an argument", + isc_commandline_option); /* FALLTHROUGH */ default: ns_main_earlyfatal("parsing options returned %d", ch);