svn commit: samba r8205 - branches/SAMBA_3_0/source/lib trunk/source/lib

gd at samba.org gd at samba.org
Thu Jul 7 13:42:10 GMT 2005


Author: gd
Date: 2005-07-07 13:42:09 +0000 (Thu, 07 Jul 2005)
New Revision: 8205

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

Log:
try to improve readability of smbldap_search_domain_info()

Guenther

Modified:
   branches/SAMBA_3_0/source/lib/smbldap_util.c
   trunk/source/lib/smbldap_util.c


Changeset:
Modified: branches/SAMBA_3_0/source/lib/smbldap_util.c
===================================================================
--- branches/SAMBA_3_0/source/lib/smbldap_util.c	2005-07-07 12:02:13 UTC (rev 8204)
+++ branches/SAMBA_3_0/source/lib/smbldap_util.c	2005-07-07 13:42:09 UTC (rev 8205)
@@ -155,7 +155,7 @@
                                     LDAPMessage ** result, const char *domain_name,
                                     BOOL try_add)
 {
-	NTSTATUS ret = NT_STATUS_UNSUCCESSFUL;
+	NTSTATUS status = NT_STATUS_UNSUCCESSFUL;
 	pstring filter;
 	int rc;
 	const char **attr_list;
@@ -168,7 +168,6 @@
 
 	DEBUG(2, ("Searching for:[%s]\n", filter));
 
-
 	attr_list = get_attr_list( dominfo_attr_list );
 	rc = smbldap_search_suffix(ldap_state, filter, attr_list , result);
 	free_attr_list( attr_list );
@@ -176,28 +175,44 @@
 	if (rc != LDAP_SUCCESS) {
 		DEBUG(2,("Problem during LDAPsearch: %s\n", ldap_err2string (rc)));
 		DEBUG(2,("Query was: %s, %s\n", lp_ldap_suffix(), filter));
-	} else if (ldap_count_entries(ldap_state->ldap_struct, *result) < 1) {
+		goto failed;
+	}
+
+	count = ldap_count_entries(ldap_state->ldap_struct, *result);
+
+	if (count == 1)
+		return NT_STATUS_OK;
+
+	ldap_msgfree(*result);
+	*result = NULL;
+	
+	if (count < 1) {
+
 		DEBUG(3, ("Got no domain info entries for domain\n"));
-		ldap_msgfree(*result);
-		*result = NULL;
-		if ( try_add && NT_STATUS_IS_OK(ret = add_new_domain_info(ldap_state, domain_name)) ) {
-			return smbldap_search_domain_info(ldap_state, result, domain_name, False);
-		} 
-		else {
+
+		if (!try_add)
+			goto failed;
+
+		status = add_new_domain_info(ldap_state, domain_name);
+		if (NT_STATUS_IS_OK(status)) {
 			DEBUG(0, ("Adding domain info for %s failed with %s\n", 
-				domain_name, nt_errstr(ret)));
-			return ret;
+				domain_name, nt_errstr(status)));
+			goto failed;
 		}
-	} else if ((count = ldap_count_entries(ldap_state->ldap_struct, *result)) > 1) {
+			
+		return smbldap_search_domain_info(ldap_state, result, domain_name, False);
+		
+	} 
+	
+	if (count > 1 ) {
+	
 		DEBUG(0, ("Got too many (%d) domain info entries for domain %s\n",
 			  count, domain_name));
-		ldap_msgfree(*result);
-		*result = NULL;
-		return ret;
-	} else {
-		return NT_STATUS_OK;
+		goto failed;
 	}
+
+failed:
+	return status;
 	
-	return ret;
 }
 

Modified: trunk/source/lib/smbldap_util.c
===================================================================
--- trunk/source/lib/smbldap_util.c	2005-07-07 12:02:13 UTC (rev 8204)
+++ trunk/source/lib/smbldap_util.c	2005-07-07 13:42:09 UTC (rev 8205)
@@ -233,7 +233,7 @@
                                     LDAPMessage ** result, const char *domain_name,
                                     BOOL try_add)
 {
-	NTSTATUS ret = NT_STATUS_UNSUCCESSFUL;
+	NTSTATUS status = NT_STATUS_UNSUCCESSFUL;
 	pstring filter;
 	int rc;
 	const char **attr_list;
@@ -246,7 +246,6 @@
 
 	DEBUG(2, ("Searching for:[%s]\n", filter));
 
-
 	attr_list = get_attr_list( dominfo_attr_list );
 	rc = smbldap_search_suffix(ldap_state, filter, attr_list , result);
 	free_attr_list( attr_list );
@@ -254,29 +253,51 @@
 	if (rc != LDAP_SUCCESS) {
 		DEBUG(2,("Problem during LDAPsearch: %s\n", ldap_err2string (rc)));
 		DEBUG(2,("Query was: %s, %s\n", lp_ldap_suffix(), filter));
-	} else if (ldap_count_entries(ldap_state->ldap_struct, *result) < 1) {
+		goto failed;
+	}
+
+	count = ldap_count_entries(ldap_state->ldap_struct, *result);
+
+	if (count == 1)
+		return NT_STATUS_OK;
+
+	ldap_msgfree(*result);
+	*result = NULL;
+	
+	if (count < 1) {
+
 		DEBUG(3, ("Got no domain info entries for domain\n"));
-		ldap_msgfree(*result);
-		*result = NULL;
-		if (try_add && NT_STATUS_IS_OK(ret = add_new_domain_info(ldap_state, domain_name))
-			    && NT_STATUS_IS_OK(ret = add_new_domain_account_policies(ldap_state, domain_name))) {
-			return smbldap_search_domain_info(ldap_state, result, domain_name, False);
-		} 
-		else {
+
+		if (!try_add)
+			goto failed;
+
+		status = add_new_domain_info(ldap_state, domain_name);
+		if (NT_STATUS_IS_OK(status)) {
 			DEBUG(0, ("Adding domain info for %s failed with %s\n", 
-				domain_name, nt_errstr(ret)));
-			return ret;
+				domain_name, nt_errstr(status)));
+			goto failed;
 		}
-	} else if ((count = ldap_count_entries(ldap_state->ldap_struct, *result)) > 1) {
+			
+		status = add_new_domain_account_policies(ldap_state, domain_name);
+		if (NT_STATUS_IS_OK(status)) {
+			DEBUG(0, ("Adding domain account policies for %s failed with %s\n", 
+				domain_name, nt_errstr(status)));
+			goto failed;
+		}
+
+		return smbldap_search_domain_info(ldap_state, result, domain_name, False);
+		
+	} 
+	
+	if (count > 1 ) {
+	
 		DEBUG(0, ("Got too many (%d) domain info entries for domain %s\n",
 			  count, domain_name));
-		ldap_msgfree(*result);
-		*result = NULL;
-		return ret;
-	} else {
-		return NT_STATUS_OK;
+		goto failed;
 	}
+
+failed:
+	return status;
 	
-	return ret;
 }
 



More information about the samba-cvs mailing list