dsgetdcname: add map_ds_flags_to_nt_version.
authorGünther Deschner <gd@samba.org>
Wed, 7 May 2008 12:38:35 +0000 (14:38 +0200)
committerGünther Deschner <gd@samba.org>
Mon, 26 May 2008 09:50:41 +0000 (11:50 +0200)
Guenther
(cherry picked from commit 1809ea22c31ee28e109f49701f91534177027165)

source/libsmb/dsgetdcname.c

index 1006b975c74d941991ca16147ce61e43b1bb371e..c7eb8005bc3a81c5485cdfde80b8d79db51b343b 100644 (file)
@@ -633,6 +633,32 @@ static NTSTATUS make_domain_controller_info(TALLOC_CTX *mem_ctx,
 /****************************************************************
 ****************************************************************/
 
+static uint32_t map_ds_flags_to_nt_version(uint32_t flags)
+{
+       uint32_t nt_version = 0;
+
+       if (flags & DS_PDC_REQUIRED) {
+               nt_version |= NETLOGON_VERSION_PDC;
+       }
+
+       if (flags & DS_GC_SERVER_REQUIRED) {
+               nt_version |= NETLOGON_VERSION_GC;
+       }
+
+       if (flags & DS_TRY_NEXTCLOSEST_SITE) {
+               nt_version |= NETLOGON_VERSION_WITH_CLOSEST_SITE;
+       }
+
+       if (flags & DS_IP_REQUIRED) {
+               nt_version |= NETLOGON_VERSION_IP;
+       }
+
+       return nt_version;
+}
+
+/****************************************************************
+****************************************************************/
+
 static NTSTATUS process_dc_dns(TALLOC_CTX *mem_ctx,
                               const char *domain_name,
                               uint32_t flags,
@@ -783,6 +809,8 @@ static NTSTATUS process_dc_netbios(TALLOC_CTX *mem_ctx,
                name_type = NBT_NAME_PDC;
        }
 
+       nt_version |= map_ds_flags_to_nt_version(flags);
+
        DEBUG(10,("process_dc_netbios\n"));
 
        for (i=0; i<num_dcs; i++) {