From 0dbd3968626445b4dcb00307e45206b37dd0e8ad Mon Sep 17 00:00:00 2001 From: Volker Lendecke Date: Sun, 18 Jan 2009 16:38:30 +0100 Subject: Add a macro async_req_setup() This streamlines setting up a multi-step async request a bit --- source3/lib/async_req.c | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) (limited to 'source3/lib/async_req.c') diff --git a/source3/lib/async_req.c b/source3/lib/async_req.c index 13b64ba79a..011948a158 100644 --- a/source3/lib/async_req.c +++ b/source3/lib/async_req.c @@ -313,3 +313,28 @@ bool async_req_enqueue(struct async_req_queue *queue, struct event_context *ev, return true; } + +bool _async_req_setup(TALLOC_CTX *mem_ctx, struct async_req **preq, + void *pstate, size_t state_size, const char *typename) +{ + struct async_req *req; + void **ppstate = (void **)pstate; + void *state; + + req = async_req_new(mem_ctx); + if (req == NULL) { + return false; + } + state = talloc_size(req, state_size); + if (state == NULL) { + TALLOC_FREE(req); + return false; + } + talloc_set_name(state, typename); + req->private_data = state; + + *preq = req; + *ppstate = state; + + return true; +} -- cgit