struct dcerpc_presentation *pres;
struct {
- void *private_data;
- NTSTATUS (*handler)(void *private_data,
+ struct tevent_req *req;
+ NTSTATUS (*handler)(struct tevent_req *req,
struct ncacn_packet *pkt,
DATA_BLOB frag);
} incoming;
// reassemble and return
}
- error = call->incoming.handler(call->incoming.private_data, pkt, pdu);
+ error = call->incoming.handler(call->incoming.req, pkt, pdu);
TALLOC_FREE(subreq);
if (!NT_STATUS_IS_OK(error)) {
// disconnect and notify pending calls
static void dcerpc_do_bind_sec_next(struct tevent_req *subreq);
static void dcerpc_do_bind_out_frag_next(struct tevent_req *subreq);
-static NTSTATUS dcerpc_do_bind_handle_in_frag(void *private_data,
+static NTSTATUS dcerpc_do_bind_handle_in_frag(struct tevent_req *req,
struct ncacn_packet *pkt,
DATA_BLOB frag);
state->num_pres = num_pres;
state->pres = pres;
- state->call->incoming.private_data = req;
+ state->call->incoming.req = req;
state->call->incoming.handler = dcerpc_do_bind_handle_in_frag;
DLIST_ADD_END(state->conn->calls.list, state->call, NULL);
-
- tevent_req_set_cleanup_fn(req, dcerpc_do_bind_cleanup);
tevent_req_defer_callback(req, ev);
+ tevent_req_set_cleanup_fn(req, dcerpc_do_bind_cleanup);
if (state->sec && state->sec->auth_type != DCERPC_AUTH_TYPE_NONE) {
subreq = gensec_update_send(state, ev,
/* we need to wait for incoming pdus */
}
-static NTSTATUS dcerpc_do_bind_handle_in_frag(void *private_data,
- struct ncacn_packet *pkt,
- DATA_BLOB frag)
+static NTSTATUS dcerpc_do_bind_handle_in_frag(struct tevent_req *req,
+ struct ncacn_packet *pkt,
+ DATA_BLOB frag)
{
- struct tevent_req *req =
- talloc_get_type_abort(private_data,
- struct tevent_req);
struct dcerpc_do_bind_state *state =
tevent_req_data(req,
struct dcerpc_do_bind_state);
static void dcerpc_do_request_out_frag_next(struct tevent_req *req,
void *private_data);
-static NTSTATUS dcerpc_do_request_handle_in_frag(void *private_data,
+static NTSTATUS dcerpc_do_request_handle_in_frag(struct tevent_req *req,
struct ncacn_packet *pkt,
DATA_BLOB frag);
return tevent_req_post(req, ev);
}
- state->call->incoming.private_data = req;
+ state->call->incoming.req = req;
state->call->incoming.handler = dcerpc_do_request_handle_in_frag;
DLIST_ADD_END(state->conn->calls.list, state->call, NULL);
-
- tevent_req_set_cleanup_fn(req, dcerpc_do_request_cleanup);
tevent_req_defer_callback(req, ev);
+ tevent_req_set_cleanup_fn(req, dcerpc_do_request_cleanup);
ok = tevent_queue_add(state->conn->calls.out_queue,
state->ev,
/* we need to wait for incoming pdus */
}
-static NTSTATUS dcerpc_do_request_handle_in_frag(void *private_data,
+static NTSTATUS dcerpc_do_request_handle_in_frag(struct tevent_req *req,
struct ncacn_packet *pkt,
DATA_BLOB frag)
{
- struct tevent_req *req =
- talloc_get_type_abort(private_data,
- struct tevent_req);
struct dcerpc_do_request_state *state =
tevent_req_data(req,
struct dcerpc_do_request_state);