diff options
Diffstat (limited to 'source3/torture')
-rw-r--r-- | source3/torture/samtest.c | 27 |
1 files changed, 26 insertions, 1 deletions
diff --git a/source3/torture/samtest.c b/source3/torture/samtest.c index e68ff5a0bf..5503887e62 100644 --- a/source3/torture/samtest.c +++ b/source3/torture/samtest.c @@ -53,6 +53,24 @@ static char* next_command (char** cmdstr) return command; } +/* Load specified configuration file */ +static NTSTATUS cmd_conf(struct samtest_state *sam, TALLOC_CTX *mem_ctx, + int argc, char **argv) +{ + if (argc != 2) { + printf("Usage: %s <smb.conf>\n", argv[0]); + return NT_STATUS_OK; + } + + if (!lp_load(argv[1], False, True, False)) { + printf("Error loading \"%s\"\n", argv[1]); + return NT_STATUS_OK; + } + + printf("\"%s\" successfully loaded\n", argv[1]); + return NT_STATUS_OK; +} + /* Display help on commands */ static NTSTATUS cmd_help(struct samtest_state *st, TALLOC_CTX *mem_ctx, int argc, char **argv) @@ -143,6 +161,7 @@ static struct cmd_set samtest_commands[] = { { "help", cmd_help, "Get help on commands", "" }, { "?", cmd_help, "Get help on commands", "" }, + { "conf", cmd_conf, "Load smb configuration file", "conf <smb.conf>" }, { "debuglevel", cmd_debuglevel, "Set debug level", "" }, { "exit", cmd_quit, "Exit program", "" }, { "quit", cmd_quit, "Exit program", "" }, @@ -336,6 +355,7 @@ int main(int argc, char *argv[]) int opt; static char *cmdstr = ""; static char *opt_logfile=NULL; + static char *config_file = dyn_CONFIGFILE; pstring logfile; struct cmd_set **cmd_set; extern BOOL AllowDebugChange; @@ -348,8 +368,9 @@ int main(int argc, char *argv[]) struct poptOption long_options[] = { POPT_AUTOHELP { NULL, 0, POPT_ARG_INCLUDE_TABLE, popt_common_debug }, - {"command", 'c', POPT_ARG_STRING, &cmdstr, 'c', "Execute semicolon seperated cmds"}, + {"command", 'e', POPT_ARG_STRING, &cmdstr, 'e', "Execute semicolon seperated cmds"}, {"logfile", 'l', POPT_ARG_STRING, &opt_logfile, 'l', "Logfile to use instead of stdout"}, + {"configfile", 'c', POPT_ARG_STRING, &config_file, 0,"use different configuration file",NULL}, { 0, 0, 0, 0} }; @@ -374,6 +395,10 @@ int main(int argc, char *argv[]) } } + if (!lp_load(config_file,True,False,False)) { + fprintf(stderr, "Can't load %s - run testparm to debug it\n", config_file); + exit(1); + } poptFreeContext(pc); |