struct gensec_update_state {
const struct gensec_security_ops *ops;
- struct tevent_req *subreq;
struct gensec_security *gensec_security;
DATA_BLOB out;
};
-static void gensec_update_subreq_done(struct tevent_req *subreq);
+static void gensec_update_done(struct tevent_req *subreq);
/**
* Next state function for the GENSEC state machine async version
struct gensec_security *gensec_security,
const DATA_BLOB in)
{
- struct tevent_req *req;
+ struct tevent_req *req = NULL;
struct gensec_update_state *state = NULL;
+ struct tevent_req *subreq = NULL;
req = tevent_req_create(mem_ctx, &state,
struct gensec_update_state);
return tevent_req_post(req, ev);
}
- state->subreq = state->ops->update_send(state, ev, gensec_security, in);
- if (tevent_req_nomem(state->subreq, req)) {
+ subreq = state->ops->update_send(state, ev, gensec_security, in);
+ if (tevent_req_nomem(subreq, req)) {
return tevent_req_post(req, ev);
}
-
- tevent_req_set_callback(state->subreq,
- gensec_update_subreq_done,
- req);
+ tevent_req_set_callback(subreq, gensec_update_done, req);
return req;
}
-static void gensec_update_subreq_done(struct tevent_req *subreq)
+static void gensec_update_done(struct tevent_req *subreq)
{
struct tevent_req *req =
tevent_req_callback_data(subreq,
struct gensec_update_state);
NTSTATUS status;
- state->subreq = NULL;
-
status = state->ops->update_recv(subreq, state, &state->out);
TALLOC_FREE(subreq);
if (tevent_req_nterror(req, status)) {