NTSTATUS error;
};
+static void smbd_smb2_session_setup_wrap_wakeup_done(struct tevent_req *subreq);
static void smbd_smb2_session_setup_wrap_setup_done(struct tevent_req *subreq);
static void smbd_smb2_session_setup_wrap_shutdown_done(struct tevent_req *subreq);
struct tevent_req *req;
struct smbd_smb2_session_setup_wrap_state *state;
struct tevent_req *subreq;
+ struct timeval wakeup_time;
req = tevent_req_create(mem_ctx, &state,
struct smbd_smb2_session_setup_wrap_state);
state->in_previous_session_id = in_previous_session_id;
state->in_security_buffer = in_security_buffer;
+ wakeup_time = timeval_current_ofs_usec(1000000);
+ subreq = tevent_wakeup_send(state, state->ev, wakeup_time);
+ if (tevent_req_nomem(subreq, req)) {
+ return tevent_req_post(req, ev);
+ }
+ tevent_req_set_callback(subreq,
+ smbd_smb2_session_setup_wrap_wakeup_done, req);
+
+ return req;
+}
+
+static void smbd_smb2_session_setup_wrap_wakeup_done(struct tevent_req *subreq)
+{
+ struct tevent_req *req =
+ tevent_req_callback_data(subreq,
+ struct tevent_req);
+ struct smbd_smb2_session_setup_wrap_state *state =
+ tevent_req_data(req,
+ struct smbd_smb2_session_setup_wrap_state);
+
+ tevent_wakeup_recv(subreq);
+ TALLOC_FREE(subreq);
+
subreq = smbd_smb2_session_setup_send(state, state->ev,
state->smb2req,
state->in_session_id,
state->in_previous_session_id,
state->in_security_buffer);
if (tevent_req_nomem(subreq, req)) {
- return tevent_req_post(req, ev);
+ return;
}
tevent_req_set_callback(subreq,
smbd_smb2_session_setup_wrap_setup_done, req);
- return req;
+ return;
}
static void smbd_smb2_session_setup_wrap_setup_done(struct tevent_req *subreq)