svn commit: samba r4755 - in branches/SAMBA_4_0/source/libcli: .

tridge at samba.org tridge at samba.org
Sat Jan 15 10:30:59 GMT 2005


Author: tridge
Date: 2005-01-15 10:30:58 +0000 (Sat, 15 Jan 2005)
New Revision: 4755

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

Log:
the recent change in the definition of lp_passwordserver() breaks this
old code, so I'm just removing it, as it needs replacing anyway

Modified:
   branches/SAMBA_4_0/source/libcli/namequery.c
   branches/SAMBA_4_0/source/libcli/namequery_dc.c


Changeset:
Modified: branches/SAMBA_4_0/source/libcli/namequery.c
===================================================================
--- branches/SAMBA_4_0/source/libcli/namequery.c	2005-01-15 10:29:43 UTC (rev 4754)
+++ branches/SAMBA_4_0/source/libcli/namequery.c	2005-01-15 10:30:58 UTC (rev 4755)
@@ -1102,130 +1102,3 @@
 	return True;
 }
 
-/********************************************************
- Get the IP address list of the domain controllers for
- a domain.
-*********************************************************/
-
-BOOL get_dc_list(TALLOC_CTX *mem_ctx, const char *domain, struct ipv4_addr **ip_list, int *count, int *ordered)
-{
-
-	*ordered = False;
-		
-	/* If it's our domain then use the 'password server' parameter. */
-
-	if (strequal(domain, lp_workgroup())) {
-		const char *p;
-		const char *pserver = lp_passwordserver(); /* UNIX charset. */
-		fstring name;
-		int num_addresses = 0;
-		int  local_count, i, j;
-		struct ipv4_addr *return_iplist = NULL;
-		struct ipv4_addr *auto_ip_list = NULL;
-		BOOL done_auto_lookup = False;
-		int auto_count = 0;
-		
-
-		if (!*pserver)
-			return internal_resolve_name(mem_ctx,
-				domain, 0x1C, ip_list, count);
-
-		p = pserver;
-
-		/*
-		 * if '*' appears in the "password server" list then add
-		 * an auto lookup to the list of manually configured
-		 * DC's.  If any DC is listed by name, then the list should be 
-		 * considered to be ordered 
-		 */
-		 
-		while (next_token(&p,name,LIST_SEP,sizeof(name))) {
-			if (strequal(name, "*")) {
-				if ( internal_resolve_name(mem_ctx, domain, 0x1C, &auto_ip_list, &auto_count) )
-					num_addresses += auto_count;
-				done_auto_lookup = True;
-				DEBUG(8,("Adding %d DC's from auto lookup\n", auto_count));
-			}
-			else 
-				num_addresses++;
-		}
-
-		/* if we have no addresses and haven't done the auto lookup, then
-		   just return the list of DC's */
-		   
-		if ( (num_addresses == 0) && !done_auto_lookup )
-			return internal_resolve_name(mem_ctx, domain, 0x1C, ip_list, count);
-
-		return_iplist = malloc_array_p(struct ipv4_addr, num_addresses);
-
-		if (return_iplist == NULL) {
-			DEBUG(3,("get_dc_list: malloc fail !\n"));
-			return False;
-		}
-
-		p = pserver;
-		local_count = 0;
-
-		/* fill in the return list now with real IP's */
-				
-		while ( (local_count<num_addresses) && next_token(&p,name,LIST_SEP,sizeof(name)) ) {
-			struct ipv4_addr name_ip;
-			
-			/* copy any addersses from the auto lookup */
-			
-			if ( strequal(name, "*") ) {
-				for ( j=0; j<auto_count; j++ ) 
-					return_iplist[local_count++] = auto_ip_list[j];
-				continue;
-			}
-			
-			/* explicit lookup; resolve_name() will handle names & IP addresses */
-					
-			if ( resolve_name( mem_ctx, name, &name_ip, 0x20) ) {
-				return_iplist[local_count++] = name_ip;
-				*ordered = True;
-			}
-				
-		}
-				
-		SAFE_FREE(auto_ip_list);
-
-		/* need to remove duplicates in the list if we have 
-		   any explicit password servers */
-		   
-		if ( *ordered ) {		
-			/* one loop to remove duplicates */
-			for ( i=0; i<local_count; i++ ) {
-				if ( is_zero_ip(return_iplist[i]) )
-					continue;
-					
-				for ( j=i+1; j<local_count; j++ ) {
-					if ( ipv4_equal( return_iplist[i], return_iplist[j]) )
-						zero_ip(&return_iplist[j]);
-				}
-			}
-			
-			/* one loop to clean up any holes we left */
-			/* first ip should never be a zero_ip() */
-			for (i = 0; i<local_count; ) {
-				if ( is_zero_ip(return_iplist[i]) ) {
-					if (i != local_count-1 )
-						memmove(&return_iplist[i], &return_iplist[i+1],
-							(local_count - i - 1)*sizeof(return_iplist[i]));
-					local_count--;
-					continue;
-				}
-				i++;
-			}
-		}
-		
-		*ip_list = return_iplist;
-		*count = local_count;
-		
-		DEBUG(8,("get_dc_list: return %d ip addresses\n", *count));
-
-		return (*count != 0);
-	}
-	
-	return internal_resolve_name(mem_ctx, domain, 0x1C, ip_list, count);
-}

Modified: branches/SAMBA_4_0/source/libcli/namequery_dc.c
===================================================================
--- branches/SAMBA_4_0/source/libcli/namequery_dc.c	2005-01-15 10:29:43 UTC (rev 4754)
+++ branches/SAMBA_4_0/source/libcli/namequery_dc.c	2005-01-15 10:30:58 UTC (rev 4755)
@@ -25,80 +25,3 @@
 #include "includes.h"
 
 
-/*
-  find the DC for a domain using methods appropriate for a RPC domain
-*/
-BOOL rpc_find_dc(const char *domain, fstring srv_name, struct ipv4_addr *ip_out)
-{
-	struct ipv4_addr *ip_list = NULL, dc_ip, exclude_ip;
-	int count, i;
-	BOOL list_ordered;
-	BOOL use_pdc_only;
-	
-	zero_ip(&exclude_ip);
-
-	use_pdc_only = must_use_pdc(domain);
-	
-	/* Lookup domain controller name */
-	   
-	if ( use_pdc_only && get_pdc_ip(domain, &dc_ip) ) {
-		DEBUG(10,("rpc_find_dc: Atempting to lookup PDC to avoid sam sync delays\n"));
-		
-		if (name_status_find(domain, 0x1c, 0x20, dc_ip, srv_name)) {
-			goto done;
-		}
-		/* Didn't get name, remember not to talk to this DC. */
-		exclude_ip = dc_ip;
-	}
-
-	/* get a list of all domain controllers */
-	
-	if (!get_dc_list( domain, &ip_list, &count, &list_ordered) ) {
-		DEBUG(3, ("Could not look up dc's for domain %s\n", domain));
-		return False;
-	}
-
-	/* Remove the entry we've already failed with (should be the PDC). */
-
-	if ( use_pdc_only ) {
-		for (i = 0; i < count; i++) {	
-			if (ipv4_equal( exclude_ip, ip_list[i]))
-				zero_ip(&ip_list[i]);
-		}
-	}
-
-	/* Pick a nice close server, but only if the list was not ordered */
-	if (!list_ordered && (count > 1) ) {
-		qsort(ip_list, count, sizeof(struct ipv4_addr), QSORT_CAST ip_compare);
-	}
-
-	for (i = 0; i < count; i++) {
-		if (is_zero_ip(ip_list[i]))
-			continue;
-
-		if (name_status_find(domain, 0x1c, 0x20, ip_list[i], srv_name)) {
-			dc_ip = ip_list[i];
-			goto done;
-		}
-	}
-
-
-	SAFE_FREE(ip_list);
-
-	return False;
-done:
-	/* We have the netbios name and IP address of a domain controller.
-	   Ideally we should sent a SAMLOGON request to determine whether
-	   the DC is alive and kicking.  If we can catch a dead DC before
-	   performing a smbcli_connect() we can avoid a 30-second timeout. */
-
-	DEBUG(3, ("rpc_find_dc: Returning DC %s (%s) for domain %s\n", srv_name,
-		  inet_ntoa(dc_ip), domain));
-
-	*ip_out = dc_ip;
-
-	SAFE_FREE(ip_list);
-
-	return True;
-}
-



More information about the samba-cvs mailing list