diff options
author | Volker Lendecke <vl@samba.org> | 2009-11-14 10:01:44 +0100 |
---|---|---|
committer | Volker Lendecke <vl@samba.org> | 2009-11-14 11:03:28 +0100 |
commit | f38edcd61a556815db2ecfaa265a46e859e980f6 (patch) | |
tree | 75dbfb6371655d3a96046aa0c5bd25c78a5f8568 | |
parent | c254349261e0a59e4403c314ec8c17aa6b7dfc37 (diff) | |
download | samba-f38edcd61a556815db2ecfaa265a46e859e980f6.tar.gz samba-f38edcd61a556815db2ecfaa265a46e859e980f6.tar.bz2 samba-f38edcd61a556815db2ecfaa265a46e859e980f6.zip |
Introduce tevent_req_poll_ntstatus
-rw-r--r-- | lib/util/tevent_ntstatus.c | 17 | ||||
-rw-r--r-- | lib/util/tevent_ntstatus.h | 8 |
2 files changed, 25 insertions, 0 deletions
diff --git a/lib/util/tevent_ntstatus.c b/lib/util/tevent_ntstatus.c index 4be4575499..e6b37f64b6 100644 --- a/lib/util/tevent_ntstatus.c +++ b/lib/util/tevent_ntstatus.c @@ -74,3 +74,20 @@ void tevent_req_simple_finish_ntstatus(struct tevent_req *subreq, } tevent_req_done(req); } + +/* + * We have to declare map_nt_error_from_unix here, both s3 and s4 have their + * (different) implementations of it. + */ +NTSTATUS map_nt_error_from_unix(int sys_errno); + +bool tevent_req_poll_ntstatus(struct tevent_req *req, + struct tevent_context *ev, + NTSTATUS *status) +{ + bool ret = tevent_req_poll(req, ev); + if (!ret) { + *status = map_nt_error_from_unix(errno); + } + return ret; +} diff --git a/lib/util/tevent_ntstatus.h b/lib/util/tevent_ntstatus.h index 4cf593a454..7f312b707b 100644 --- a/lib/util/tevent_ntstatus.h +++ b/lib/util/tevent_ntstatus.h @@ -36,4 +36,12 @@ NTSTATUS tevent_req_simple_recv_ntstatus(struct tevent_req *req); void tevent_req_simple_finish_ntstatus(struct tevent_req *subreq, NTSTATUS subreq_status); +/* + * Wrapper for tevent_req_poll that grabs NTSTATUS directly in case of a + * failure + */ +bool tevent_req_poll_ntstatus(struct tevent_req *req, + struct tevent_context *ev, + NTSTATUS *status); + #endif |