svn commit: samba r14468 - branches/SAMBA_3_0/source/nsswitch trunk/source/nsswitch

gd at samba.org gd at samba.org
Thu Mar 16 11:32:02 GMT 2006


Author: gd
Date: 2006-03-16 11:32:01 +0000 (Thu, 16 Mar 2006)
New Revision: 14468

WebSVN: http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=rev&root=samba&rev=14468

Log:
Better fix to avoid winbind panic when we have an inproper configuration
and want to just shutdown and exit.

Guenther

Modified:
   branches/SAMBA_3_0/source/nsswitch/winbindd.c
   branches/SAMBA_3_0/source/nsswitch/winbindd_util.c
   trunk/source/nsswitch/winbindd.c
   trunk/source/nsswitch/winbindd_util.c


Changeset:
Modified: branches/SAMBA_3_0/source/nsswitch/winbindd.c
===================================================================
--- branches/SAMBA_3_0/source/nsswitch/winbindd.c	2006-03-16 11:04:21 UTC (rev 14467)
+++ branches/SAMBA_3_0/source/nsswitch/winbindd.c	2006-03-16 11:32:01 UTC (rev 14468)
@@ -1071,7 +1071,10 @@
 
 	netsamlogon_cache_init(); /* Non-critical */
 	
-	init_domain_list();
+	if (!init_domain_list(True)) {
+		DEBUG(0,("unable to initalize domain list\n"));
+		exit(1);
+	}
 
 	init_idmap_child();
 

Modified: branches/SAMBA_3_0/source/nsswitch/winbindd_util.c
===================================================================
--- branches/SAMBA_3_0/source/nsswitch/winbindd_util.c	2006-03-16 11:04:21 UTC (rev 14467)
+++ branches/SAMBA_3_0/source/nsswitch/winbindd_util.c	2006-03-16 11:32:01 UTC (rev 14468)
@@ -62,7 +62,7 @@
 	/* Initialise list */
 
 	if (!_domain_list) 
-		init_domain_list();
+		init_domain_list(False);
 
 	return _domain_list;
 }
@@ -498,7 +498,7 @@
 }
 
 /* Look up global info for the winbind daemon */
-void init_domain_list(void)
+BOOL init_domain_list(BOOL initial_start)
 {
 	extern struct winbindd_methods cache_methods;
 	extern struct winbindd_methods passdb_methods;
@@ -518,7 +518,11 @@
 		DOM_SID our_sid;
 
 		if (!secrets_fetch_domain_sid(lp_workgroup(), &our_sid)) {
-			smb_panic("Could not fetch our SID - did we join?\n");
+			if (initial_start) {
+				return False;
+			} else {
+				smb_panic("Could not fetch our SID - did we join?\n");
+			}
 		}
 	
 		domain = add_trusted_domain( lp_workgroup(), lp_realm(),
@@ -540,6 +544,8 @@
 					    get_global_sam_sid());
 		setup_domain_child(domain, &domain->child, NULL);
 	}
+
+	return True;
 }
 
 /** 

Modified: trunk/source/nsswitch/winbindd.c
===================================================================
--- trunk/source/nsswitch/winbindd.c	2006-03-16 11:04:21 UTC (rev 14467)
+++ trunk/source/nsswitch/winbindd.c	2006-03-16 11:32:01 UTC (rev 14468)
@@ -1071,7 +1071,10 @@
 
 	netsamlogon_cache_init(); /* Non-critical */
 	
-	init_domain_list();
+	if (!init_domain_list(True)) {
+		DEBUG(0,("unable to initalize domain list\n"));
+		exit(1);
+	}
 
 	init_idmap_child();
 

Modified: trunk/source/nsswitch/winbindd_util.c
===================================================================
--- trunk/source/nsswitch/winbindd_util.c	2006-03-16 11:04:21 UTC (rev 14467)
+++ trunk/source/nsswitch/winbindd_util.c	2006-03-16 11:32:01 UTC (rev 14468)
@@ -62,7 +62,7 @@
 	/* Initialise list */
 
 	if (!_domain_list) 
-		init_domain_list();
+		init_domain_list(False);
 
 	return _domain_list;
 }
@@ -498,7 +498,7 @@
 }
 
 /* Look up global info for the winbind daemon */
-void init_domain_list(void)
+BOOL init_domain_list(BOOL initial_start)
 {
 	extern struct winbindd_methods cache_methods;
 	extern struct winbindd_methods passdb_methods;
@@ -518,7 +518,11 @@
 		DOM_SID our_sid;
 
 		if (!secrets_fetch_domain_sid(lp_workgroup(), &our_sid)) {
-			smb_panic("Could not fetch our SID - did we join?\n");
+			if (initial_start) {
+				return False;
+			} else {
+				smb_panic("Could not fetch our SID - did we join?\n");
+			}
 		}
 	
 		domain = add_trusted_domain( lp_workgroup(), lp_realm(),
@@ -540,6 +544,8 @@
 					    get_global_sam_sid());
 		setup_domain_child(domain, &domain->child, NULL);
 	}
+
+	return True;
 }
 
 /** 



More information about the samba-cvs mailing list