lib: Lift lp_disable_netbios one level
authorVolker Lendecke <vl@samba.org>
Sat, 5 Dec 2015 12:49:55 +0000 (13:49 +0100)
committerJeremy Allison <jra@samba.org>
Tue, 8 Dec 2015 22:01:27 +0000 (23:01 +0100)
This should fix an error code when neither DS_IS_FLAT_NAME nor
DS_IS_DNS_NAME are specified. If netbios is disabled and the DC
can't be found via DNS we should not return NOT_SUPPORTED but
DOMAIN_CONTROLLER_NOT_FOUND.

Signed-off-by: Volker Lendecke <vl@samba.org>
Reviewed-by: Jeremy Allison <jra@samba.org>
source3/libsmb/dsgetdcname.c

index d7c9332d8346fd30f9232f99a184469af07d2c8b..ca968119cafd94730c79b381a16e16f3ed5a9b4a 100644 (file)
@@ -483,10 +483,6 @@ static NTSTATUS discover_dc_netbios(TALLOC_CTX *mem_ctx,
        *returned_dclist = NULL;
        *returned_count = 0;
 
-       if (lp_disable_netbios()) {
-               return NT_STATUS_NOT_SUPPORTED;
-       }
-
        if (flags & DS_PDC_REQUIRED) {
                name_type = NBT_NAME_PDC;
        }
@@ -1046,6 +1042,10 @@ static NTSTATUS dsgetdcname_rediscover(TALLOC_CTX *mem_ctx,
 
        if (flags & DS_IS_FLAT_NAME) {
 
+               if (lp_disable_netbios()) {
+                       return NT_STATUS_NOT_SUPPORTED;
+               }
+
                status = discover_dc_netbios(mem_ctx, domain_name, flags,
                                             &dclist, &num_dcs);
                NT_STATUS_NOT_OK_RETURN(status);
@@ -1076,6 +1076,10 @@ static NTSTATUS dsgetdcname_rediscover(TALLOC_CTX *mem_ctx,
                }
        }
 
+       if (lp_disable_netbios()) {
+               return NT_STATUS_DOMAIN_CONTROLLER_NOT_FOUND;
+       }
+
        status = discover_dc_netbios(mem_ctx, domain_name, flags, &dclist,
                                     &num_dcs);
        NT_STATUS_NOT_OK_RETURN(status);