summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--docs-xml/manpages-3/eventlogadm.8.xml13
-rw-r--r--source3/utils/eventlogadm.c19
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" ) ) {