diff options
| author | Volker Lendecke <vl@samba.org> | 2014-06-20 10:37:46 +0000 |
|---|---|---|
| committer | Volker Lendecke <vl@samba.org> | 2014-06-21 20:38:11 +0200 |
| commit | c597c9344ca7630335d8fad1ddb4466b01eb9aff (patch) | |
| tree | ca07c995b1a70f27a5df1cef07a3e3e2715135c9 | |
| parent | 0a2209c1611f318b546ff08348c6579991579cb9 (diff) | |
| download | samba-c597c9344ca7630335d8fad1ddb4466b01eb9aff.tar.gz samba-c597c9344ca7630335d8fad1ddb4466b01eb9aff.tar.xz samba-c597c9344ca7630335d8fad1ddb4466b01eb9aff.zip | |
libsmb: Make cli_smb2_create_fnum cancellable
Signed-off-by: Volker Lendecke <vl@samba.org>
Reviewed-by: Jeremy Allison <jra@samba.org>
| -rw-r--r-- | source3/libsmb/cli_smb2_fnum.c | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/source3/libsmb/cli_smb2_fnum.c b/source3/libsmb/cli_smb2_fnum.c index 6c24038674..87edf4e298 100644 --- a/source3/libsmb/cli_smb2_fnum.c +++ b/source3/libsmb/cli_smb2_fnum.c @@ -157,9 +157,11 @@ struct cli_smb2_create_fnum_state { struct cli_state *cli; struct smb_create_returns cr; uint16_t fnum; + struct tevent_req *subreq; }; static void cli_smb2_create_fnum_done(struct tevent_req *subreq); +static bool cli_smb2_create_fnum_cancel(struct tevent_req *req); struct tevent_req *cli_smb2_create_fnum_send(TALLOC_CTX *mem_ctx, struct tevent_context *ev, @@ -215,6 +217,10 @@ struct tevent_req *cli_smb2_create_fnum_send(TALLOC_CTX *mem_ctx, return tevent_req_post(req, ev); } tevent_req_set_callback(subreq, cli_smb2_create_fnum_done, req); + + state->subreq = subreq; + tevent_req_set_cancel_fn(req, cli_smb2_create_fnum_cancel); + return req; } @@ -241,6 +247,13 @@ static void cli_smb2_create_fnum_done(struct tevent_req *subreq) tevent_req_done(req); } +static bool cli_smb2_create_fnum_cancel(struct tevent_req *req) +{ + struct cli_smb2_create_fnum_state *state = tevent_req_data( + req, struct cli_smb2_create_fnum_state); + return tevent_req_cancel(state->subreq); +} + NTSTATUS cli_smb2_create_fnum_recv(struct tevent_req *req, uint16_t *pfnum, struct smb_create_returns *cr) { |
