Skip to content

Commit

Permalink
s4:cldap_server: Do not handle netlogon ourself anymore
Browse files Browse the repository at this point in the history
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 <[email protected]>
Reviewed-by: Nadezhda Ivanova <[email protected]>
  • Loading branch information
bnf authored and abartlet committed Nov 11, 2013
1 parent 0620c79 commit 7106dcf
Show file tree
Hide file tree
Showing 3 changed files with 5 additions and 62 deletions.
12 changes: 0 additions & 12 deletions source4/cldap_server/cldap_server.c
Original file line number Diff line number Diff line change
Expand Up @@ -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);
Expand Down
50 changes: 0 additions & 50 deletions source4/cldap_server/netlogon.c
Original file line number Diff line number Diff line change
Expand Up @@ -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);
}
5 changes: 5 additions & 0 deletions source4/cldap_server/rootdse.c
Original file line number Diff line number Diff line change
Expand Up @@ -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);

Expand Down

0 comments on commit 7106dcf

Please sign in to comment.