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

netlogon_creds_cli: Pass "capabilities" up from creds_cli_check

Signed-off-by: Volker Lendecke <vl@samba.org>
Reviewed-by: Andrew Bartlett <abartlet@samba.org>
This commit is contained in:
Volker Lendecke 2017-09-19 16:45:27 -07:00
parent d7e31d9f4d
commit 32e823e08d
4 changed files with 19 additions and 7 deletions

View File

@ -1728,8 +1728,11 @@ static void netlogon_creds_cli_check_caps(struct tevent_req *subreq)
tevent_req_done(req);
}
NTSTATUS netlogon_creds_cli_check_recv(struct tevent_req *req)
NTSTATUS netlogon_creds_cli_check_recv(struct tevent_req *req,
union netr_Capabilities *capabilities)
{
struct netlogon_creds_cli_check_state *state = tevent_req_data(
req, struct netlogon_creds_cli_check_state);
NTSTATUS status;
if (tevent_req_is_nterror(req, &status)) {
@ -1738,12 +1741,17 @@ NTSTATUS netlogon_creds_cli_check_recv(struct tevent_req *req)
return status;
}
if (capabilities != NULL) {
*capabilities = state->caps;
}
tevent_req_received(req);
return NT_STATUS_OK;
}
NTSTATUS netlogon_creds_cli_check(struct netlogon_creds_cli_context *context,
struct dcerpc_binding_handle *b)
struct dcerpc_binding_handle *b,
union netr_Capabilities *capabilities)
{
TALLOC_CTX *frame = talloc_stackframe();
struct tevent_context *ev;
@ -1761,7 +1769,7 @@ NTSTATUS netlogon_creds_cli_check(struct netlogon_creds_cli_context *context,
if (!tevent_req_poll_ntstatus(req, ev, &status)) {
goto fail;
}
status = netlogon_creds_cli_check_recv(req);
status = netlogon_creds_cli_check_recv(req, capabilities);
fail:
TALLOC_FREE(frame);
return status;

View File

@ -116,9 +116,11 @@ struct tevent_req *netlogon_creds_cli_check_send(TALLOC_CTX *mem_ctx,
struct tevent_context *ev,
struct netlogon_creds_cli_context *context,
struct dcerpc_binding_handle *b);
NTSTATUS netlogon_creds_cli_check_recv(struct tevent_req *req);
NTSTATUS netlogon_creds_cli_check_recv(struct tevent_req *req,
union netr_Capabilities *capabilities);
NTSTATUS netlogon_creds_cli_check(struct netlogon_creds_cli_context *context,
struct dcerpc_binding_handle *b);
struct dcerpc_binding_handle *b,
union netr_Capabilities *capabilities);
struct tevent_req *netlogon_creds_cli_ServerPasswordSet_send(TALLOC_CTX *mem_ctx,
struct tevent_context *ev,

View File

@ -446,7 +446,8 @@ again:
goto fail;
}
status = netlogon_creds_cli_check(creds_ctx, rpccli->binding_handle);
status = netlogon_creds_cli_check(creds_ctx, rpccli->binding_handle,
NULL);
if (!NT_STATUS_IS_OK(status)) {
DBG_WARNING("netlogon_creds_cli_check failed: %s\n",
nt_errstr(status));

View File

@ -3370,7 +3370,8 @@ NTSTATUS cli_rpc_pipe_open_schannel_with_creds(struct cli_state *cli,
if (ndr_syntax_id_equal(&table->syntax_id,
&ndr_table_netlogon.syntax_id)) {
status = netlogon_creds_cli_check(netlogon_creds,
rpccli->binding_handle);
rpccli->binding_handle,
NULL);
if (!NT_STATUS_IS_OK(status)) {
DEBUG(0, ("netlogon_creds_cli_check failed with %s\n",
nt_errstr(status)));