diff options
Diffstat (limited to 'source4/cldap_server')
-rw-r--r-- | source4/cldap_server/netlogon.c | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/source4/cldap_server/netlogon.c b/source4/cldap_server/netlogon.c index f5703d3f32..ce257e9e1a 100644 --- a/source4/cldap_server/netlogon.c +++ b/source4/cldap_server/netlogon.c @@ -221,10 +221,8 @@ NTSTATUS fill_netlogon_samlogon_response(struct ldb_context *sam_ctx, } else { user_known = true; } - - server_type = - DS_SERVER_DS | DS_SERVER_TIMESERV | - DS_SERVER_GOOD_TIMESERV; + + server_type = DS_SERVER_DS; if (samdb_is_pdc(sam_ctx)) { server_type |= DS_SERVER_PDC; @@ -242,6 +240,10 @@ NTSTATUS fill_netlogon_samlogon_response(struct ldb_context *sam_ctx, server_type |= DS_SERVER_KDC; } + if (str_list_check(services, "ntp_signd")) { + server_type | DS_SERVER_TIMESERV | DS_SERVER_GOOD_TIMESERV; + } + if (samdb_rodc(sam_ctx, &am_rodc) == LDB_SUCCESS && !am_rodc) { server_type |= DS_SERVER_WRITABLE; } |