summaryrefslogtreecommitdiff
path: root/source3/smbd/server.c
diff options
context:
space:
mode:
Diffstat (limited to 'source3/smbd/server.c')
-rw-r--r--source3/smbd/server.c15
1 files changed, 10 insertions, 5 deletions
diff --git a/source3/smbd/server.c b/source3/smbd/server.c
index 3bb60058ac..8f6d9a38ac 100644
--- a/source3/smbd/server.c
+++ b/source3/smbd/server.c
@@ -818,6 +818,7 @@ extern void build_options(BOOL screen);
const char *profile_level = NULL;
int opt;
poptContext pc;
+ BOOL print_build_options = False;
enum smb_server_mode server_mode = SERVER_MODE_DAEMON;
@@ -849,21 +850,25 @@ extern void build_options(BOOL screen);
#endif
pc = poptGetContext("smbd", argc, argv, long_options, 0);
-
while((opt = poptGetNextOpt(pc)) != -1) {
switch (opt) {
case 'b':
- build_options(True); /* Display output to screen as well as debug */
- exit(0);
+ print_build_options = True;
+ break;
default:
- d_fprintf(stderr, "\nInvalid option %s: %s\n",
+ d_fprintf(stderr, "\nInvalid option %s: %s\n\n",
poptBadOption(pc, 0), poptStrerror(opt));
+ poptPrintUsage(pc, stderr, 0);
exit(1);
}
}
-
poptFreeContext(pc);
+ if (print_build_options) {
+ build_options(True); /* Display output to screen as well as debug */
+ exit(0);
+ }
+
#ifdef HAVE_SETLUID
/* needed for SecureWare on SCO */
setluid(0);