summaryrefslogtreecommitdiff
path: root/source4/cldap_server/netlogon.c
diff options
context:
space:
mode:
authorAmitay Isaacs <amitay@gmail.com>2011-12-08 09:28:45 +1100
committerAmitay Isaacs <amitay@gmail.com>2011-12-13 00:55:32 +1100
commitf02e4ebfafa6e5911e3fe744b1780527ab12c970 (patch)
treed184dcf1e1a5c102c822e51d57bb846d250b74fe /source4/cldap_server/netlogon.c
parenta77b0dd7b8d468d0198c6c8a8649e089172fc922 (diff)
downloadsamba-f02e4ebfafa6e5911e3fe744b1780527ab12c970.tar.gz
samba-f02e4ebfafa6e5911e3fe744b1780527ab12c970.tar.bz2
samba-f02e4ebfafa6e5911e3fe744b1780527ab12c970.zip
s4-cldap: Set DS_DNS_CONTROLLER bit if we are running RPC dnsserver
Till we have internal DNS server which appears in services, use endpoint services to find out if we are running dns server.
Diffstat (limited to 'source4/cldap_server/netlogon.c')
-rw-r--r--source4/cldap_server/netlogon.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/source4/cldap_server/netlogon.c b/source4/cldap_server/netlogon.c
index 9d9f45e8bb..e9ec0745f4 100644
--- a/source4/cldap_server/netlogon.c
+++ b/source4/cldap_server/netlogon.c
@@ -61,6 +61,7 @@ NTSTATUS fill_netlogon_samlogon_response(struct ldb_context *sam_ctx,
struct ldb_result *dom_res = NULL, *user_res = NULL;
int ret;
const char **services = lpcfg_server_services(lp_ctx);
+ const char **rpc_services = lpcfg_dcerpc_endpoint_servers(lp_ctx);
uint32_t server_type;
const char *pdc_name;
struct GUID domain_uuid;
@@ -246,6 +247,10 @@ NTSTATUS fill_netlogon_samlogon_response(struct ldb_context *sam_ctx,
server_type |= DS_SERVER_KDC;
}
+ if (str_list_check(rpc_services, "dnsserver")) {
+ server_type |= DS_DNS_CONTROLLER;
+ }
+
if (samdb_rodc(sam_ctx, &am_rodc) == LDB_SUCCESS && !am_rodc) {
server_type |= DS_SERVER_WRITABLE;
}