Optimization. Don't do the retry logic if sitename_fetch() returned NULL, we already...
authorJeremy Allison <jra@samba.org>
Tue, 3 Sep 2013 21:07:43 +0000 (14:07 -0700)
committerKarolin Seeger <kseeger@samba.org>
Fri, 6 Sep 2013 08:54:03 +0000 (10:54 +0200)
Bug 5917 - Samba does not work on site with Read Only Domain Controller

Signed-off-by: Jeremy Allison <jra@samba.org>
Reviewed-by: Andrew Bartlett <abartlet@samba.org>
Autobuild-User(master): Andrew Bartlett <abartlet@samba.org>
Autobuild-Date(master): Wed Sep  4 01:19:05 CEST 2013 on sn-devel-104

(cherry picked from commit bdab6f9431715fbfd28f8cc0dfb4dde2966f22f3)

source3/libsmb/dsgetdcname.c

index 43b3fd89807006955172f9c8cd5961bfdd1e0894..841a1798829b5e7f61d7d0fb896c62801c451e21 100644 (file)
@@ -1170,9 +1170,13 @@ NTSTATUS dsgetdcname(TALLOC_CTX *mem_ctx,
        NTSTATUS status;
        const char *query_site = NULL;
        char *ptr_to_free = NULL;
+       bool retry_query_with_null = false;
 
        if ((site_name == NULL) || (site_name[0] == '\0')) {
                ptr_to_free = sitename_fetch(domain_name);
+               if (ptr_to_free != NULL) {
+                       retry_query_with_null = true;
+               }
                query_site = ptr_to_free;
        } else {
                query_site = site_name;
@@ -1193,7 +1197,7 @@ NTSTATUS dsgetdcname(TALLOC_CTX *mem_ctx,
        }
 
        /* Should we try again with site_name == NULL ? */
-       if ((site_name == NULL) || (site_name[0] == '\0')) {
+       if (retry_query_with_null) {
                status = dsgetdcname_internal(mem_ctx,
                                        msg_ctx,
                                        domain_name,