r24620: move printing out the version string and exit()
authorStefan Metzmacher <metze@samba.org>
Wed, 22 Aug 2007 12:04:42 +0000 (12:04 +0000)
committerGerald (Jerry) Carter <jerry@samba.org>
Wed, 10 Oct 2007 20:02:25 +0000 (15:02 -0500)
into the popt _POST processing.

Now 'smbd -V --bla' complains about an unknown option

metze
(This used to be commit 69bf7f1874c8e89b61c4baa03ff9ad191e71b804)

source4/lib/cmdline/popt_common.c

index 904a8738925fc816a711f89ed61233fe0702ab07..413c8e7cc3d44476711f87e2d076aa8a3662686f 100644 (file)
@@ -39,6 +39,8 @@ enum {OPT_OPTION=1,OPT_LEAK_REPORT,OPT_LEAK_REPORT_FULL,OPT_DEBUG_STDERR};
 
 struct cli_credentials *cmdline_credentials = NULL;
 
+static bool PrintSambaVersionString;
+
 static void popt_common_callback(poptContext con, 
                           enum poptCallbackReason reason,
                           const struct poptOption *opt,
@@ -47,6 +49,11 @@ static void popt_common_callback(poptContext con,
        const char *pname;
 
        if (reason == POPT_CALLBACK_REASON_POST) {
+               if (PrintSambaVersionString) {
+                       printf( "Version %s\n", SAMBA_VERSION_STRING );
+                       exit(0);
+               }
+
                lp_load();
                /* Hook any 'every Samba program must do this, after
                 * the smb.conf is setup' functions here */
@@ -85,8 +92,7 @@ static void popt_common_callback(poptContext con,
                break;
 
        case 'V':
-               printf( "Version %s\n", SAMBA_VERSION_STRING );
-               exit(0);
+               PrintSambaVersionString = true;
                break;
 
        case 'O':
@@ -176,7 +182,7 @@ struct poptOption popt_common_samba[] = {
 };
 
 struct poptOption popt_common_version[] = {
-       { NULL, 0, POPT_ARG_CALLBACK, (void *)popt_common_callback },
+       { NULL, 0, POPT_ARG_CALLBACK|POPT_CBFLAG_POST, (void *)popt_common_callback },
        { "version", 'V', POPT_ARG_NONE, NULL, 'V', "Print version" },
        { NULL }
 };