summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorStefan Metzmacher <metze@samba.org>2007-08-22 12:06:27 +0000
committerGerald (Jerry) Carter <jerry@samba.org>2007-10-10 12:30:11 -0500
commita95d9d1ef99d6a2f77a289f8d2011cae482821b1 (patch)
treefc19a0a3b6ea4f2d591a2fdb969e1046bb34b7d0
parentc115de4beac887442a73b4a85367d7b5fded68e6 (diff)
downloadsamba-a95d9d1ef99d6a2f77a289f8d2011cae482821b1.tar.gz
samba-a95d9d1ef99d6a2f77a289f8d2011cae482821b1.tar.xz
samba-a95d9d1ef99d6a2f77a289f8d2011cae482821b1.zip
r24621: - deferr calling build_options();exit(0);
- use poptPrintUsage() to give the user more info metze
-rw-r--r--source/nmbd/nmbd.c3
-rw-r--r--source/nsswitch/winbindd.c7
-rw-r--r--source/smbd/server.c15
3 files changed, 16 insertions, 9 deletions
diff --git a/source/nmbd/nmbd.c b/source/nmbd/nmbd.c
index 4f1dd93cae9..9c8c764763c 100644
--- a/source/nmbd/nmbd.c
+++ b/source/nmbd/nmbd.c
@@ -678,8 +678,9 @@ static BOOL open_sockets(enum smb_server_mode server_mode, int port)
while ((opt = poptGetNextOpt(pc)) != -1) {
switch (opt) {
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);
}
};
diff --git a/source/nsswitch/winbindd.c b/source/nsswitch/winbindd.c
index f1283c5a838..56e20b78c72 100644
--- a/source/nsswitch/winbindd.c
+++ b/source/nsswitch/winbindd.c
@@ -1017,8 +1017,9 @@ int main(int argc, char **argv, char **envp)
while ((opt = poptGetNextOpt(pc)) != -1) {
switch (opt) {
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);
}
}
@@ -1036,6 +1037,8 @@ int main(int argc, char **argv, char **envp)
exit(1);
}
+ poptFreeContext(pc);
+
if (!override_logfile) {
pstr_sprintf(logfile, "%s/log.winbindd", dyn_LOGFILEBASE);
lp_set_logfile(logfile);
@@ -1167,8 +1170,6 @@ int main(int argc, char **argv, char **envp)
messaging_register(winbind_messaging_context(), NULL,
MSG_DUMP_EVENT_LIST, winbind_msg_dump_event_list);
- poptFreeContext(pc);
-
netsamlogon_cache_init(); /* Non-critical */
/* clear the cached list of trusted domains */
diff --git a/source/smbd/server.c b/source/smbd/server.c
index 3bb60058acb..8f6d9a38ac4 100644
--- a/source/smbd/server.c
+++ b/source/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);