diff options
author | Andrew Tridgell <tridge@samba.org> | 2009-10-02 11:52:16 +1000 |
---|---|---|
committer | Andrew Tridgell <tridge@samba.org> | 2009-10-02 12:03:04 +1000 |
commit | 634d9d64766dd125d202f47c2d0cefc9da3c87b6 (patch) | |
tree | ef3fcd83c5a638ef7931ca57a9c8bf739e8a5b7f /source4 | |
parent | 4cb055cacdc8a28f1efee1d40546baa05515e24e (diff) | |
download | samba-634d9d64766dd125d202f47c2d0cefc9da3c87b6.tar.gz samba-634d9d64766dd125d202f47c2d0cefc9da3c87b6.tar.bz2 samba-634d9d64766dd125d202f47c2d0cefc9da3c87b6.zip |
s4-cldap: match w2k8-r2 for cldap netlogon bits
Windows does not set the 3 high bits, which is strange given their
meaning. I've submitted a CAR on this.
Diffstat (limited to 'source4')
-rw-r--r-- | source4/cldap_server/netlogon.c | 27 |
1 files changed, 17 insertions, 10 deletions
diff --git a/source4/cldap_server/netlogon.c b/source4/cldap_server/netlogon.c index ecc1369dcf..50a8775ae4 100644 --- a/source4/cldap_server/netlogon.c +++ b/source4/cldap_server/netlogon.c @@ -206,35 +206,42 @@ NTSTATUS fill_netlogon_samlogon_response(struct ldb_context *sam_ctx, } server_type = - NBT_SERVER_DS | NBT_SERVER_TIMESERV | - NBT_SERVER_CLOSEST | NBT_SERVER_WRITABLE | - NBT_SERVER_GOOD_TIMESERV | DS_DNS_CONTROLLER | - DS_DNS_DOMAIN; + DS_SERVER_DS | DS_SERVER_TIMESERV | + DS_SERVER_CLOSEST | DS_SERVER_WRITABLE | + DS_SERVER_GOOD_TIMESERV; + +#if 0 + /* w2k8-r2 as a DC does not claim these */ + server_type |= DS_DNS_CONTROLLER | DS_DNS_DOMAIN; +#endif if (samdb_is_pdc(sam_ctx)) { int *domainFunctionality; - server_type |= NBT_SERVER_PDC; + server_type |= DS_SERVER_PDC; domainFunctionality = talloc_get_type(ldb_get_opaque(sam_ctx, "domainFunctionality"), int); if (domainFunctionality && *domainFunctionality >= DS_DOMAIN_FUNCTION_2008) { - server_type |= NBT_SERVER_FULL_SECRET_DOMAIN_6; + server_type |= DS_SERVER_FULL_SECRET_DOMAIN_6; } } if (samdb_is_gc(sam_ctx)) { - server_type |= NBT_SERVER_GC; + server_type |= DS_SERVER_GC; } if (str_list_check(services, "ldap")) { - server_type |= NBT_SERVER_LDAP; + server_type |= DS_SERVER_LDAP; } if (str_list_check(services, "kdc")) { - server_type |= NBT_SERVER_KDC; + server_type |= DS_SERVER_KDC; } +#if 0 + /* w2k8-r2 as a sole DC does not claim this */ if (ldb_dn_compare(ldb_get_root_basedn(sam_ctx), ldb_get_default_basedn(sam_ctx)) == 0) { - server_type |= DS_DNS_FOREST; + server_type |= DS_DNS_FOREST_ROOT; } +#endif pdc_name = talloc_asprintf(mem_ctx, "\\\\%s", lp_netbios_name(lp_ctx)); domain_uuid = samdb_result_guid(dom_res->msgs[0], "objectGUID"); |