s3: eventlogadm.c: add -s option to use alternative config file.
authorHolger Hetterich <hhetter@novell.com>
Sun, 14 Feb 2010 18:05:00 +0000 (19:05 +0100)
committerVolker Lendecke <vl@samba.org>
Mon, 15 Feb 2010 07:31:44 +0000 (08:31 +0100)
Update the manpage accordingly.

docs-xml/manpages-3/eventlogadm.8.xml
source3/utils/eventlogadm.c

index c104120598d431439f5d13b4e6e7b052325b07f4..4a6a68e185a5f8f17e7d37e79193b73ace6b1262 100644 (file)
@@ -20,6 +20,7 @@
        <cmdsynopsis>
 
                <command>eventlogadm</command>
+               <arg><option>-s</option></arg>
                <arg><option>-d</option></arg>
                <arg><option>-h</option></arg>
                <arg choice="plain"><option>-o</option>
@@ -32,6 +33,7 @@
        </cmdsynopsis>
        <cmdsynopsis>
                <command>eventlogadm</command>
+               <arg><option>-s</option></arg>
                <arg><option>-d</option></arg>
                <arg><option>-h</option></arg>
                <arg choice="plain"><option>-o</option>
@@ -42,6 +44,7 @@
        </cmdsynopsis>
        <cmdsynopsis>
                <command>eventlogadm</command>
+               <arg><option>-s</option></arg>
                <arg><option>-d</option></arg>
                <arg><option>-h</option></arg>
                <arg choice="plain"><option>-o</option>
        <title>OPTIONS</title>
 
        <variablelist>
+               <varlistentry>
+               <term>
+               <option>-s</option>
+               <replaceable>FILENAME</replaceable>
+               </term>
+               <listitem><para>
+               The <command>-s</command> option causes <command>eventlogadm</command> to load the
+               configuration file given as FILENAME instead of the default one used by Samba.
+               </para></listitem>
+               </varlistentry>
 
                <varlistentry>
                <term><option>-d</option></term>
index 415330f68c898839bff377a4ce304898fcb5051b..d94f25b42dfbe30ade9f318fa979bca05de4285c 100644 (file)
@@ -40,6 +40,7 @@ static void usage( char *s )
        printf( " -o addsource <EventlogName> <sourcename> <msgfileDLLname> \tAdds the specified source & DLL eventlog registry entry\n" );
        printf( " -o dump <Eventlog Name> <starting_record>\t\t\t\t\tDump stored eventlog entries on STDOUT\n" );
        printf( "\nMiscellaneous options:\n" );
+       printf( " -s <filename>\t\t\t\t\t\t\tUse configuration file <filename>.\n");
        printf( " -d\t\t\t\t\t\t\t\tturn debug on\n" );
        printf( " -h\t\t\t\t\t\t\t\tdisplay help\n\n" );
 }
@@ -50,7 +51,7 @@ static void display_eventlog_names( void )
        int i;
 
        elogs = lp_eventlog_list(  );
-       printf( "Active eventlog names (from smb.conf):\n" );
+       printf( "Active eventlog names:\n" );
        printf( "--------------------------------------\n" );
        if ( elogs ) {
                for ( i = 0; elogs[i]; i++ ) {
@@ -220,6 +221,7 @@ int main( int argc, char *argv[] )
 {
        int opt, rc;
        char *exename;
+       char *configfile = NULL;
        TALLOC_CTX *frame = talloc_stackframe();
 
 
@@ -229,8 +231,6 @@ int main( int argc, char *argv[] )
 
        opt_debug = 0;          /* todo set this from getopts */
 
-       lp_load(get_dyn_CONFIGFILE(), True, False, False, True);
-
        exename = argv[0];
 
        /* default */
@@ -240,7 +240,7 @@ int main( int argc, char *argv[] )
 #if 0                          /* TESTING CODE */
        eventlog_add_source( "System", "TestSourceX", "SomeTestPathX" );
 #endif
-       while ( ( opt = getopt( argc, argv, "dho:" ) ) != EOF ) {
+       while ( ( opt = getopt( argc, argv, "dho:s:" ) ) != EOF ) {
                switch ( opt ) {
 
                case 'o':
@@ -256,6 +256,10 @@ int main( int argc, char *argv[] )
                case 'd':
                        opt_debug = 1;
                        break;
+               case 's':
+                       configfile = talloc_strdup(frame, optarg);
+                       break;
+
                }
        }
 
@@ -268,6 +272,13 @@ int main( int argc, char *argv[] )
                exit( 1 );
        }
 
+       if ( configfile == NULL ) {
+               lp_load(get_dyn_CONFIGFILE(), True, False, False, True);
+       } else if (!lp_load(configfile, True, False, False, True)) {
+               printf("Unable to parse configfile '%s'\n",configfile);
+               exit( 1 );
+       }
+
        /*  note that the separate command types should call usage if they need to... */
        while ( 1 ) {
                if ( !StrCaseCmp( opname, "addsource" ) ) {