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