svn commit: samba r22724 - in branches: SAMBA_3_0/source/nsswitch SAMBA_3_0_26/source/nsswitch

jerry at samba.org jerry at samba.org
Sun May 6 21:31:20 GMT 2007


Author: jerry
Date: 2007-05-06 21:31:19 +0000 (Sun, 06 May 2007)
New Revision: 22724

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

Log:
Call an nss_info backend's init() function if the 
previous call was unsuccessful.  needed for offline
logons.



Modified:
   branches/SAMBA_3_0/source/nsswitch/nss_info.c
   branches/SAMBA_3_0_26/source/nsswitch/nss_info.c


Changeset:
Modified: branches/SAMBA_3_0/source/nsswitch/nss_info.c
===================================================================
--- branches/SAMBA_3_0/source/nsswitch/nss_info.c	2007-05-06 21:28:03 UTC (rev 22723)
+++ branches/SAMBA_3_0/source/nsswitch/nss_info.c	2007-05-06 21:31:19 UTC (rev 22724)
@@ -190,10 +190,11 @@
 		nss_domain->backend = nss_backend;
 		nss_domain->domain  = talloc_strdup( nss_domain, domain );
 
-		status = nss_domain->backend->methods->init( nss_domain );
-		if ( NT_STATUS_IS_OK( status ) ) {
+		/* Try to init and ave the result */
+
+		nss_domain->init_status = nss_domain->backend->methods->init( nss_domain );
 			DLIST_ADD( nss_domain_list, nss_domain );
-		} else {
+		if ( !NT_STATUS_IS_OK(nss_domain->init_status) ) {			
 			DEBUG(0,("nss_init: Failed to init backend for %s domain!\n", 
 				 nss_domain->domain));
 		}
@@ -248,6 +249,10 @@
 		p = nss_domain_list;		
 	}
 
+	if ( !NT_STATUS_IS_OK( p->init_status ) ) {
+	       p->init_status = p->backend->methods->init( p );
+	}
+
 	return p;
 }
 

Modified: branches/SAMBA_3_0_26/source/nsswitch/nss_info.c
===================================================================
--- branches/SAMBA_3_0_26/source/nsswitch/nss_info.c	2007-05-06 21:28:03 UTC (rev 22723)
+++ branches/SAMBA_3_0_26/source/nsswitch/nss_info.c	2007-05-06 21:31:19 UTC (rev 22724)
@@ -190,10 +190,11 @@
 		nss_domain->backend = nss_backend;
 		nss_domain->domain  = talloc_strdup( nss_domain, domain );
 
-		status = nss_domain->backend->methods->init( nss_domain );
-		if ( NT_STATUS_IS_OK( status ) ) {
+		/* Try to init and ave the result */
+
+		nss_domain->init_status = nss_domain->backend->methods->init( nss_domain );
 			DLIST_ADD( nss_domain_list, nss_domain );
-		} else {
+		if ( !NT_STATUS_IS_OK(nss_domain->init_status) ) {			
 			DEBUG(0,("nss_init: Failed to init backend for %s domain!\n", 
 				 nss_domain->domain));
 		}
@@ -248,6 +249,10 @@
 		p = nss_domain_list;		
 	}
 
+	if ( !NT_STATUS_IS_OK( p->init_status ) ) {
+	       p->init_status = p->backend->methods->init( p );
+	}
+
 	return p;
 }
 



More information about the samba-cvs mailing list