summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--source4/winbind/wb_cmd_getdcname.c23
1 files changed, 13 insertions, 10 deletions
diff --git a/source4/winbind/wb_cmd_getdcname.c b/source4/winbind/wb_cmd_getdcname.c
index 05f9980be6..f1398cd3c7 100644
--- a/source4/winbind/wb_cmd_getdcname.c
+++ b/source4/winbind/wb_cmd_getdcname.c
@@ -34,7 +34,7 @@ struct cmd_getdcname_state {
};
static void getdcname_recv_domain(struct composite_context *ctx);
-static void getdcname_recv_dcname(struct rpc_request *req);
+static void getdcname_recv_dcname(struct tevent_req *subreq);
struct composite_context *wb_cmd_getdcname_send(TALLOC_CTX *mem_ctx,
struct wbsrv_service *service,
@@ -72,7 +72,7 @@ static void getdcname_recv_domain(struct composite_context *ctx)
talloc_get_type(ctx->async.private_data,
struct cmd_getdcname_state);
struct wbsrv_domain *domain;
- struct rpc_request *req;
+ struct tevent_req *subreq;
state->ctx->status = wb_sid2domain_recv(ctx, &domain);
if (!composite_is_ok(state->ctx)) return;
@@ -83,20 +83,23 @@ static void getdcname_recv_domain(struct composite_context *ctx)
state->g.in.domainname = state->domain_name;
state->g.out.dcname = talloc(state, const char *);
- req = dcerpc_netr_GetAnyDCName_send(domain->netlogon_pipe, state,
- &state->g);
- if (composite_nomem(req, state->ctx)) return;
+ subreq = dcerpc_netr_GetAnyDCName_r_send(state,
+ state->ctx->event_ctx,
+ domain->netlogon_pipe->binding_handle,
+ &state->g);
+ if (composite_nomem(subreq, state->ctx)) return;
- composite_continue_rpc(state->ctx, req, getdcname_recv_dcname, state);
+ tevent_req_set_callback(subreq, getdcname_recv_dcname, state);
}
-static void getdcname_recv_dcname(struct rpc_request *req)
+static void getdcname_recv_dcname(struct tevent_req *subreq)
{
struct cmd_getdcname_state *state =
- talloc_get_type(req->async.private_data,
- struct cmd_getdcname_state);
+ tevent_req_callback_data(subreq,
+ struct cmd_getdcname_state);
- state->ctx->status = dcerpc_netr_GetAnyDCName_recv(req);
+ state->ctx->status = dcerpc_netr_GetAnyDCName_r_recv(subreq, state);
+ TALLOC_FREE(subreq);
if (!composite_is_ok(state->ctx)) return;
state->ctx->status = werror_to_ntstatus(state->g.out.result);
if (!composite_is_ok(state->ctx)) return;