From bf696271327f0bcd6250dccf9df4a203096763ac Mon Sep 17 00:00:00 2001 From: Holger Hetterich Date: Sun, 14 Feb 2010 19:05:00 +0100 Subject: [PATCH] s3: eventlogadm.c: add -s option to use alternative config file. Update the manpage accordingly. --- docs-xml/manpages-3/eventlogadm.8.xml | 13 +++++++++++++ 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 c104120..4a6a68e 100644 --- a/docs-xml/manpages-3/eventlogadm.8.xml +++ b/docs-xml/manpages-3/eventlogadm.8.xml @@ -20,6 +20,7 @@ eventlogadm + @@ -32,6 +33,7 @@ eventlogadm + @@ -42,6 +44,7 @@ eventlogadm + @@ -72,6 +75,16 @@ OPTIONS + + + + FILENAME + + + The -s option causes eventlogadm to load the + configuration file given as FILENAME instead of the default one used by Samba. + + diff --git a/source3/utils/eventlogadm.c b/source3/utils/eventlogadm.c index 415330f..d94f25b 100644 --- a/source3/utils/eventlogadm.c +++ b/source3/utils/eventlogadm.c @@ -40,6 +40,7 @@ static void usage( char *s ) printf( " -o addsource \tAdds the specified source & DLL eventlog registry entry\n" ); printf( " -o dump \t\t\t\t\tDump stored eventlog entries on STDOUT\n" ); printf( "\nMiscellaneous options:\n" ); + printf( " -s \t\t\t\t\t\t\tUse configuration file .\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" ) ) { -- 1.6.4.2