diff options
author | Volker Lendecke <vl@samba.org> | 2009-11-14 09:38:20 +0100 |
---|---|---|
committer | Volker Lendecke <vl@samba.org> | 2009-11-14 11:03:28 +0100 |
commit | c254349261e0a59e4403c314ec8c17aa6b7dfc37 (patch) | |
tree | a5db57fbd9671276381d69d81278944893b88cbe | |
parent | 6133ab6055f68a11380d384c1d871774139035ea (diff) | |
download | samba-c254349261e0a59e4403c314ec8c17aa6b7dfc37.tar.gz samba-c254349261e0a59e4403c314ec8c17aa6b7dfc37.tar.bz2 samba-c254349261e0a59e4403c314ec8c17aa6b7dfc37.zip |
Introduce tevent_req_simple_finish_ntstatus
-rw-r--r-- | lib/util/tevent_ntstatus.c | 15 | ||||
-rw-r--r-- | lib/util/tevent_ntstatus.h | 7 |
2 files changed, 22 insertions, 0 deletions
diff --git a/lib/util/tevent_ntstatus.c b/lib/util/tevent_ntstatus.c index d6cb0affd9..4be4575499 100644 --- a/lib/util/tevent_ntstatus.c +++ b/lib/util/tevent_ntstatus.c @@ -59,3 +59,18 @@ NTSTATUS tevent_req_simple_recv_ntstatus(struct tevent_req *req) } return NT_STATUS_OK; } + +void tevent_req_simple_finish_ntstatus(struct tevent_req *subreq, + NTSTATUS subreq_status) +{ + struct tevent_req *req = tevent_req_callback_data( + subreq, struct tevent_req); + + TALLOC_FREE(subreq); + + if (!NT_STATUS_IS_OK(subreq_status)) { + tevent_req_nterror(req, subreq_status); + return; + } + tevent_req_done(req); +} diff --git a/lib/util/tevent_ntstatus.h b/lib/util/tevent_ntstatus.h index 22fe9188d0..4cf593a454 100644 --- a/lib/util/tevent_ntstatus.h +++ b/lib/util/tevent_ntstatus.h @@ -29,4 +29,11 @@ bool tevent_req_nterror(struct tevent_req *req, NTSTATUS status); bool tevent_req_is_nterror(struct tevent_req *req, NTSTATUS *pstatus); NTSTATUS tevent_req_simple_recv_ntstatus(struct tevent_req *req); +/* + * Helper routine to pass the subreq_ntstatus to the req embedded in + * tevent_req_callback_data(subreq), which will be freed. + */ +void tevent_req_simple_finish_ntstatus(struct tevent_req *subreq, + NTSTATUS subreq_status); + #endif |