Sync with HEAD
authorJelmer Vernooij <jelmer@samba.org>
Mon, 28 Oct 2002 19:44:11 +0000 (19:44 +0000)
committerJelmer Vernooij <jelmer@samba.org>
Mon, 28 Oct 2002 19:44:11 +0000 (19:44 +0000)
(This used to be commit 4ae350671ef8aeae52995b3ca79e135cf444ae39)

source3/lib/popt_common.c

index bbc17cb704de8520fac1be8ff5e4aad3cd572c84..21ee94d2e6cb6eabb1c2a0be8fcbcbe70fe804b0 100644 (file)
@@ -3,6 +3,7 @@
    Common popt routines
 
    Copyright (C) Tim Potter 2001,2002
+   Copyright (C) Jelmer Vernooij 2002
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
 
 #include "includes.h"
 
-/* Handle -d,--debuglevel command line option */
+/* Handle command line options:
+ *             -d,--debuglevel 
+ *             -s,--configfile 
+ *             -O,--socket-options 
+ */
 
-static void debug_callback(poptContext con, 
+extern pstring user_socket_options;
+extern BOOL AllowDebugChange;
+extern pstring global_myname;
+
+static void popt_common_callback(poptContext con, 
                           enum poptCallbackReason reason,
                           const struct poptOption *opt,
                           const char *arg, const void *data)
 {
-       extern BOOL AllowDebugChange;
-
        switch(opt->val) {
        case 'd':
                if (arg) {
                        debug_parse_levels(arg);
                        AllowDebugChange = False;
                }
+               break;
 
+       case 'V':
+               printf( "Version %s\n", VERSION );
+               exit(0);
+               break;
+
+       case 'O':
+               pstrcpy(user_socket_options,arg);
+               break;
+
+       case 's':
+               pstrcpy(dyn_CONFIGFILE, arg);
+               break;
+
+       case 'n':
+               pstrcpy(global_myname,arg);
+               strupper(global_myname);
                break;
        }
 }
 
 struct poptOption popt_common_debug[] = {
-       { NULL, 0, POPT_ARG_CALLBACK, debug_callback },
+       { NULL, 0, POPT_ARG_CALLBACK, popt_common_callback },
        { "debuglevel", 'd', POPT_ARG_STRING, NULL, 'd', "Set debug level", 
          "DEBUGLEVEL" },
        { 0 }
 };
+
+struct poptOption popt_common_configfile[] = {
+       { NULL, 0, POPT_ARG_CALLBACK, popt_common_callback },
+       { "configfile", 's', POPT_ARG_STRING, NULL, 's', "Use alternative configuration file" },
+       { 0 }
+};
+
+struct poptOption popt_common_socket_options[] = {
+       { NULL, 0, POPT_ARG_CALLBACK, popt_common_callback },
+       {"socket-options", 'O', POPT_ARG_STRING, NULL, 'O', "socket options to use" },
+       { 0 }
+};
+
+struct poptOption popt_common_version[] = {
+       { NULL, 0, POPT_ARG_CALLBACK, popt_common_callback },
+       {"version", 'V', POPT_ARG_NONE, NULL, 'V', "Print version" },
+       { 0 }
+};
+
+struct poptOption popt_common_netbios_name[] = {
+       { NULL, 0, POPT_ARG_CALLBACK, popt_common_callback },
+       {"netbiosname", 'n', POPT_ARG_STRING, NULL, 'n', "Primary netbios name"},
+       { 0 }
+};