Revert "s4-netlogon: always set the dNSHostName in GetDomainInfo"
authorMatthias Dieter Wallnöfer <mwallnoefer@yahoo.de>
Tue, 24 Nov 2009 19:30:07 +0000 (20:30 +0100)
committerMatthias Dieter Wallnöfer <mwallnoefer@yahoo.de>
Tue, 24 Nov 2009 19:30:07 +0000 (20:30 +0100)
This reverts commit 87b6f2e863c6e117643ab6704e50167e849b69cc.

This was the cause of the breakage of the "LogonGetDomainInfo" testsuite. I
think my behaviour is more correct to Windows Server since the test works
against it (at least release 2003 R2).

One problem I discovered is that freshly joined workstations don't get their
DNS name into the directory. Therefore I think also another part (maybe another
RPC call) is able to do this.

source4/rpc_server/netlogon/dcerpc_netlogon.c

index 1a653c293c544b442077d53507ce9419f73dcdc3..fb2601ab2ff2b37f3533e4c9c3d9556662cb59aa 100644 (file)
@@ -1217,13 +1217,6 @@ static NTSTATUS dcesrv_netr_LogonGetDomainInfo(struct dcesrv_call_state *dce_cal
                        "operatingSystem",
                        r->in.query->workstation_info->os_name.string);
 
                        "operatingSystem",
                        r->in.query->workstation_info->os_name.string);
 
-               if (r->in.query->workstation_info->dns_hostname) {
-                       /* TODO: should this always be done? */
-                       samdb_msg_add_string(sam_ctx, mem_ctx, new_msg,
-                                            "dNSHostname",
-                                            r->in.query->workstation_info->dns_hostname);
-               }
-
                /*
                 * Sets informations from "os_version". On a empty structure
                 * the values are cleared.
                /*
                 * Sets informations from "os_version". On a empty structure
                 * the values are cleared.
@@ -1253,6 +1246,9 @@ static NTSTATUS dcesrv_netr_LogonGetDomainInfo(struct dcesrv_call_state *dce_cal
                 */
                if ((r->in.query->workstation_info->workstation_flags
                        & NETR_WS_FLAG_HANDLES_SPN_UPDATE) == 0) {
                 */
                if ((r->in.query->workstation_info->workstation_flags
                        & NETR_WS_FLAG_HANDLES_SPN_UPDATE) == 0) {
+                       samdb_msg_set_string(sam_ctx, mem_ctx, new_msg,
+                               "dNSHostname",
+                       r->in.query->workstation_info->dns_hostname);
 
                        samdb_msg_add_string(sam_ctx, mem_ctx, new_msg,
                                "servicePrincipalName",
 
                        samdb_msg_add_string(sam_ctx, mem_ctx, new_msg,
                                "servicePrincipalName",