diff options
author | Matthias Dieter Wallnöfer <mdw@samba.org> | 2011-11-23 20:32:57 +0100 |
---|---|---|
committer | Stefan Metzmacher <metze@samba.org> | 2011-11-27 12:51:54 +0100 |
commit | 521c708fe45ab0d8b9e31391cc8b8aae59e0c27f (patch) | |
tree | 685802199b31c8119cf2d9fa545ba5beda8abf54 /source4/rpc_server/netlogon | |
parent | 1770dafafd51ee9989005c9214b1b1b9d3ecada7 (diff) | |
download | samba-521c708fe45ab0d8b9e31391cc8b8aae59e0c27f.tar.gz samba-521c708fe45ab0d8b9e31391cc8b8aae59e0c27f.tar.bz2 samba-521c708fe45ab0d8b9e31391cc8b8aae59e0c27f.zip |
s4:netlogon RPC server - DsRGetDcNameEx - set the DNS name flags correctly
The rules are explained in MS-NRPC 2.2.1.2.1.
Patch inspired by Matthieu Patou.
Signed-off-by: Stefan Metzmacher <metze@samba.org>
Diffstat (limited to 'source4/rpc_server/netlogon')
-rw-r--r-- | source4/rpc_server/netlogon/dcerpc_netlogon.c | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/source4/rpc_server/netlogon/dcerpc_netlogon.c b/source4/rpc_server/netlogon/dcerpc_netlogon.c index 814b9699ed..125fb3859e 100644 --- a/source4/rpc_server/netlogon/dcerpc_netlogon.c +++ b/source4/rpc_server/netlogon/dcerpc_netlogon.c @@ -1791,9 +1791,23 @@ static WERROR dcesrv_netr_DsRGetDCNameEx2(struct dcesrv_call_state *dce_call, return ntstatus_to_werror(status); } + /* + * According to MS-NRPC 2.2.1.2.1 we should set the "DS_DNS_FOREST_ROOT" + * (O) flag when the returned forest name is in DNS format. This is here + * always the case (see below). + */ + response.data.nt5_ex.server_type |= DS_DNS_FOREST_ROOT; + if (r->in.flags & DS_RETURN_DNS_NAME) { dc_name = response.data.nt5_ex.pdc_dns_name; domain_name = response.data.nt5_ex.dns_domain; + /* + * According to MS-NRPC 2.2.1.2.1 we should set the + * "DS_DNS_CONTROLLER" (M) and "DS_DNS_DOMAIN" (N) flags when + * the returned information is in DNS form. + */ + response.data.nt5_ex.server_type |= + DS_DNS_CONTROLLER | DS_DNS_DOMAIN; } else if (r->in.flags & DS_RETURN_FLAT_NAME) { dc_name = response.data.nt5_ex.pdc_name; domain_name = response.data.nt5_ex.domain_name; |