1
0
mirror of https://github.com/samba-team/samba.git synced 2024-12-22 13:34:15 +03:00

s4:cldap_server: Do not handle netlogon ourself anymore

Netlogon is now handled by the ldb rootdse module.

The netlogon files will be moved to dsdb in the next commit.

Reviewed-by: Andrew Bartlett <abartlet@samba.org>
Reviewed-by: Nadezhda Ivanova <nivanova@symas.com>
This commit is contained in:
Benjamin Franzke 2013-11-01 10:52:02 +01:00 committed by Andrew Bartlett
parent 0620c79d76
commit 7106dcf2b8
3 changed files with 5 additions and 62 deletions

View File

@ -80,18 +80,6 @@ static void cldapd_request_handler(struct cldap_socket *cldap,
return;
}
if (search->num_attributes == 1 &&
strcasecmp(search->attributes[0], "netlogon") == 0) {
cldapd_netlogon_request(cldap,
cldapd,
in,
in->ldap_msg->messageid,
search->tree,
in->src);
talloc_free(in);
return;
}
cldapd_rootdse_request(cldap, cldapd, in,
in->ldap_msg->messageid,
search, in->src);

View File

@ -458,53 +458,3 @@ NTSTATUS parse_netlogon_request(struct ldb_parse_tree *tree,
failed:
return NT_STATUS_UNSUCCESSFUL;
}
/*
handle incoming cldap requests
*/
void cldapd_netlogon_request(struct cldap_socket *cldap,
struct cldapd_server *cldapd,
TALLOC_CTX *tmp_ctx,
uint32_t message_id,
struct ldb_parse_tree *tree,
struct tsocket_address *src)
{
const char *domain, *host, *user, *domain_guid;
struct dom_sid *domain_sid;
int acct_control, version;
struct netlogon_samlogon_response netlogon;
NTSTATUS status = NT_STATUS_INVALID_PARAMETER;
DEBUG(5,("cldap netlogon query domain=%s host=%s user=%s version=%d guid=%s\n",
domain, host, user, version, domain_guid));
status = parse_netlogon_request(tree, cldapd->task->lp_ctx, tmp_ctx,
&domain, &host, &user, &domain_guid,
&domain_sid, &acct_control, &version);
if (!NT_STATUS_IS_OK(status)) {
goto failed;
}
status = fill_netlogon_samlogon_response(cldapd->samctx, tmp_ctx,
domain, NULL, domain_sid,
domain_guid,
user, acct_control,
tsocket_address_inet_addr_string(src, tmp_ctx),
version, cldapd->task->lp_ctx,
&netlogon, false);
if (!NT_STATUS_IS_OK(status)) {
goto failed;
}
status = cldap_netlogon_reply(cldap, message_id, src, version, &netlogon);
if (!NT_STATUS_IS_OK(status)) {
goto failed;
}
return;
failed:
DEBUG(2,("cldap netlogon query failed domain=%s host=%s version=%d - %s\n",
domain, host, version, nt_errstr(status)));
cldap_empty_reply(cldap, message_id, src);
}

View File

@ -158,6 +158,11 @@ void cldapd_rootdse_request(struct cldap_socket *cldap,
reply.response = NULL;
reply.result = &result;
/* Note: The remoteAddress should rather be set on a ldb request.
* We can set this savely on the context here,
* since cldapd_rootdse_fill operates synchronously. */
ldb_set_opaque(cldapd->samctx, "remoteAddress", src);
cldapd_rootdse_fill(cldapd, tmp_ctx, search, &reply.response,
reply.result);