diff options
author | Andrew Tridgell <tridge@samba.org> | 2005-05-13 05:29:41 +0000 |
---|---|---|
committer | Gerald (Jerry) Carter <jerry@samba.org> | 2007-10-10 13:16:41 -0500 |
commit | 04ecea3b1ce9e4fdda5f39368b51ca90364a2496 (patch) | |
tree | d002f781aac70ab4a96157528937c4e89cf185a4 /source4/cldap_server | |
parent | f8a955f7ce3f60371f95b389cf716810308f2e8f (diff) | |
download | samba-04ecea3b1ce9e4fdda5f39368b51ca90364a2496.tar.gz samba-04ecea3b1ce9e4fdda5f39368b51ca90364a2496.tar.xz samba-04ecea3b1ce9e4fdda5f39368b51ca90364a2496.zip |
r6761: - not everyone is in my domain :-)
- started adding support for the other cldap attributes that XP uses
(This used to be commit 1537558039b012a4124e6167ad7ebfd7486f05ff)
Diffstat (limited to 'source4/cldap_server')
-rw-r--r-- | source4/cldap_server/netlogon.c | 20 |
1 files changed, 19 insertions, 1 deletions
diff --git a/source4/cldap_server/netlogon.c b/source4/cldap_server/netlogon.c index 327a60c8bb8..ea4a8726ef3 100644 --- a/source4/cldap_server/netlogon.c +++ b/source4/cldap_server/netlogon.c @@ -93,7 +93,8 @@ static NTSTATUS cldapd_netlogon_fill(struct cldap_socket *cldap, pdc_dns_name = talloc_asprintf(mem_ctx, "%s.%s", lp_netbios_name(), dns_domain); flatname = samdb_result_string(res[0], "name", lp_workgroup()); - site_name = "Default-First-Site-Name.bludom.tridgell.net"; + site_name = talloc_asprintf(mem_ctx, "Default-First-Site-Name.%s", + dns_domain); site_name2 = ""; pdc_ip = iface_best_ip(src_address); @@ -179,6 +180,9 @@ void cldapd_netlogon_request(struct cldap_socket *cldap, const char *domain = NULL; const char *host = NULL; const char *user = ""; + const char *domain_guid = NULL; + const char *domain_sid = NULL; + int acct_control = -1; int version = -1; union nbt_cldap_netlogon netlogon; NTSTATUS status = NT_STATUS_INVALID_PARAMETER; @@ -206,6 +210,16 @@ void cldapd_netlogon_request(struct cldap_socket *cldap, t->u.simple.value.data, t->u.simple.value.length); } + if (strcasecmp(t->u.simple.attr, "DomainGuid") == 0) { + domain_guid = talloc_strndup(tmp_ctx, + t->u.simple.value.data, + t->u.simple.value.length); + } + if (strcasecmp(t->u.simple.attr, "DomainSid") == 0) { + domain_sid = talloc_strndup(tmp_ctx, + t->u.simple.value.data, + t->u.simple.value.length); + } if (strcasecmp(t->u.simple.attr, "User") == 0) { user = talloc_strndup(tmp_ctx, t->u.simple.value.data, @@ -215,6 +229,10 @@ void cldapd_netlogon_request(struct cldap_socket *cldap, t->u.simple.value.length == 4) { version = IVAL(t->u.simple.value.data, 0); } + if (strcasecmp(t->u.simple.attr, "AAC") == 0 && + t->u.simple.value.length == 4) { + acct_control = IVAL(t->u.simple.value.data, 0); + } } if (domain == NULL || host == NULL || version == -1) { |