return tevent_req_simple_recv_ntstatus(req);
}
-NTSTATUS cli_oplock_ack(struct cli_state *cli, uint16_t fnum, unsigned char level)
-{
- TALLOC_CTX *frame = talloc_stackframe();
- struct event_context *ev;
- struct tevent_req *req;
- NTSTATUS status = NT_STATUS_OK;
-
- if (cli_has_async_calls(cli)) {
- /*
- * Can't use sync call while an async call is in flight
- */
- status = NT_STATUS_INVALID_PARAMETER;
- goto fail;
- }
-
- ev = event_context_init(frame);
- if (ev == NULL) {
- status = NT_STATUS_NO_MEMORY;
- goto fail;
- }
-
- req = cli_oplock_ack_send(frame, ev, cli, fnum, level);
- if (req == NULL) {
- status = NT_STATUS_NO_MEMORY;
- goto fail;
- }
-
- if (!tevent_req_poll(req, ev)) {
- status = map_nt_error_from_unix(errno);
- goto fail;
- }
-
- status = cli_oplock_ack_recv(req);
- fail:
- TALLOC_FREE(frame);
- return status;
-}
-
-/****************************************************************************
-set the oplock handler for a connection
-****************************************************************************/
-
-void cli_oplock_handler(struct cli_state *cli,
- NTSTATUS (*handler)(struct cli_state *, uint16_t, unsigned char))
-{
- cli->oplock_handler = handler;
-}