From e18349b2bb6f4df9c6d08a3d62cfbf012f7f3660 Mon Sep 17 00:00:00 2001 From: Günther Deschner Date: Thu, 23 Feb 2006 16:51:53 +0000 Subject: r13660: Attempt to better handle the failure that we cannot find our sid upon startup; don't panic, shutdown instead. Guenther (This used to be commit f209192e26c12fd48feb6195b724715fbada8b85) --- source3/nsswitch/winbindd.c | 7 +++++-- source3/nsswitch/winbindd_util.c | 12 ++++++++---- 2 files changed, 13 insertions(+), 6 deletions(-) (limited to 'source3') diff --git a/source3/nsswitch/winbindd.c b/source3/nsswitch/winbindd.c index 8314c65c64..f9ba80e533 100644 --- a/source3/nsswitch/winbindd.c +++ b/source3/nsswitch/winbindd.c @@ -1054,7 +1054,7 @@ int main(int argc, char **argv) /* Initialise messaging system */ if (!message_init()) { - DEBUG(0, ("unable to initialise messaging system\n")); + DEBUG(0, ("unable to initialize messaging system\n")); exit(1); } @@ -1071,7 +1071,10 @@ int main(int argc, char **argv) netsamlogon_cache_init(); /* Non-critical */ - init_domain_list(); + if (!init_domain_list()) { + DEBUG(0, ("unable to initialize domain list\n")); + exit(1); + } init_idmap_child(); diff --git a/source3/nsswitch/winbindd_util.c b/source3/nsswitch/winbindd_util.c index 349ca21652..0678376e8f 100644 --- a/source3/nsswitch/winbindd_util.c +++ b/source3/nsswitch/winbindd_util.c @@ -61,8 +61,9 @@ struct winbindd_domain *domain_list(void) { /* Initialise list */ - if (!_domain_list) - init_domain_list(); + if (!_domain_list && !init_domain_list()) { + return NULL; + } return _domain_list; } @@ -498,7 +499,7 @@ enum winbindd_result winbindd_dual_init_connection(struct winbindd_domain *domai } /* Look up global info for the winbind daemon */ -void init_domain_list(void) +BOOL init_domain_list(void) { extern struct winbindd_methods cache_methods; extern struct winbindd_methods passdb_methods; @@ -518,7 +519,8 @@ void init_domain_list(void) DOM_SID our_sid; if (!secrets_fetch_domain_sid(lp_workgroup(), &our_sid)) { - smb_panic("Could not fetch our SID - did we join?\n"); + DEBUG(0,("Could not fetch our SID - did we join?\n")); + return False; } domain = add_trusted_domain( lp_workgroup(), lp_realm(), @@ -540,6 +542,8 @@ void init_domain_list(void) get_global_sam_sid()); setup_domain_child(domain, &domain->child, NULL); } + + return True; } /** -- cgit