svn commit: samba r18199 - in branches/SAMBA_3_0/source: libsmb nsswitch

jra at samba.org jra at samba.org
Thu Sep 7 03:44:05 GMT 2006


Author: jra
Date: 2006-09-07 03:44:05 +0000 (Thu, 07 Sep 2006)
New Revision: 18199

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

Log:
Allow winbindd to delete a saf_ entry if it knows
it can't talk to it.
Jeremy.

Modified:
   branches/SAMBA_3_0/source/libsmb/namequery.c
   branches/SAMBA_3_0/source/nsswitch/winbindd_cm.c


Changeset:
Modified: branches/SAMBA_3_0/source/libsmb/namequery.c
===================================================================
--- branches/SAMBA_3_0/source/libsmb/namequery.c	2006-09-07 03:24:08 UTC (rev 18198)
+++ branches/SAMBA_3_0/source/libsmb/namequery.c	2006-09-07 03:44:05 UTC (rev 18199)
@@ -77,6 +77,30 @@
 	return ret;
 }
 
+BOOL saf_delete( const char *domain, const char *servername )
+{
+	char *key;
+	BOOL ret = False;
+	
+	if ( !domain || !servername ) {
+		DEBUG(2,("saf_delete: Refusing to store empty domain or servername!\n"));
+		return False;
+	}
+	
+	if ( !gencache_init() ) 
+		return False;
+	
+	key = saf_key(domain);
+	ret = gencache_del(key);
+	
+	if (ret) {
+		DEBUG(10,("saf_delete: domain = [%s], server = [%s]\n",
+			domain, servername));
+	}
+	SAFE_FREE( key );
+	return ret;
+}
+
 /****************************************************************************
 ****************************************************************************/
 

Modified: branches/SAMBA_3_0/source/nsswitch/winbindd_cm.c
===================================================================
--- branches/SAMBA_3_0/source/nsswitch/winbindd_cm.c	2006-09-07 03:24:08 UTC (rev 18198)
+++ branches/SAMBA_3_0/source/nsswitch/winbindd_cm.c	2006-09-07 03:44:05 UTC (rev 18199)
@@ -167,8 +167,12 @@
 					NTSTATUS result)
 {
 	add_failed_connection_entry(domain->name, server, result);
+	/* If this was the saf name for the last thing we talked to,
+	   remove it. */
+	saf_delete(domain->name, server);
 	if (*domain->alt_name) {
 		add_failed_connection_entry(domain->alt_name, server, result);
+		saf_delete(domain->alt_name, server);
 	}
 }
 



More information about the samba-cvs mailing list