summaryrefslogtreecommitdiff
path: root/source4
diff options
context:
space:
mode:
authorAndrew Tridgell <tridge@samba.org>2005-05-13 05:29:41 +0000
committerGerald (Jerry) Carter <jerry@samba.org>2007-10-10 13:16:41 -0500
commit04ecea3b1ce9e4fdda5f39368b51ca90364a2496 (patch)
treed002f781aac70ab4a96157528937c4e89cf185a4 /source4
parentf8a955f7ce3f60371f95b389cf716810308f2e8f (diff)
downloadsamba-04ecea3b1ce9e4fdda5f39368b51ca90364a2496.tar.gz
samba-04ecea3b1ce9e4fdda5f39368b51ca90364a2496.tar.bz2
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')
-rw-r--r--source4/cldap_server/netlogon.c20
1 files changed, 19 insertions, 1 deletions
diff --git a/source4/cldap_server/netlogon.c b/source4/cldap_server/netlogon.c
index 327a60c8bb..ea4a8726ef 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) {