diff options
-rw-r--r-- | docs-xml/manpages-3/eventlogadm.8.xml | 13 | ||||
-rw-r--r-- | source3/utils/eventlogadm.c | 19 |
2 files changed, 28 insertions, 4 deletions
diff --git a/docs-xml/manpages-3/eventlogadm.8.xml b/docs-xml/manpages-3/eventlogadm.8.xml index c104120598..4a6a68e185 100644 --- a/docs-xml/manpages-3/eventlogadm.8.xml +++ b/docs-xml/manpages-3/eventlogadm.8.xml @@ -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> @@ -72,6 +75,16 @@ <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> diff --git a/source3/utils/eventlogadm.c b/source3/utils/eventlogadm.c index 415330f68c..d94f25b42d 100644 --- a/source3/utils/eventlogadm.c +++ b/source3/utils/eventlogadm.c @@ -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" ) ) { |