Line data Source code
1 : /*
2 : * Unix SMB/CIFS implementation.
3 : *
4 : * test suite for SMB2 replay
5 : *
6 : * Copyright (C) Anubhav Rakshit 2014
7 : * Copyright (C) Stefan Metzmacher 2014
8 : *
9 : * This program is free software; you can redistribute it and/or modify
10 : * it under the terms of the GNU General Public License as published by
11 : * the Free Software Foundation; either version 3 of the License, or
12 : * (at your option) any later version.
13 : *
14 : * This program is distributed in the hope that it will be useful,
15 : * but WITHOUT ANY WARRANTY; without even the implied warranty of
16 : * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17 : * GNU General Public License for more details.
18 : *
19 : * You should have received a copy of the GNU General Public License
20 : * along with this program. If not, see <http://www.gnu.org/licenses/>.
21 : */
22 :
23 : #ifndef __OPLOCK_BREAK_HANDLER_H__
24 : #define __OPLOCK_BREAK_HANDLER_H__
25 :
26 : struct break_info {
27 : struct torture_context *tctx;
28 : bool oplock_skip_ack;
29 : struct smb2_handle handle;
30 : uint8_t level;
31 : struct smb2_break br;
32 : int count;
33 : int failures;
34 : NTSTATUS failure_status;
35 : struct smb2_transport *received_transport;
36 : };
37 :
38 : extern struct break_info break_info;
39 :
40 : bool torture_oplock_ack_handler(struct smb2_transport *transport,
41 : const struct smb2_handle *handle,
42 : uint8_t level,
43 : void *private_data);
44 : bool torture_oplock_ignore_handler(struct smb2_transport *transport,
45 : const struct smb2_handle *handle,
46 : uint8_t level,
47 : void *private_data);
48 : void torture_wait_for_oplock_break(struct torture_context *tctx);
49 :
50 0 : static inline void torture_reset_break_info(struct torture_context *tctx,
51 : struct break_info *r)
52 : {
53 0 : ZERO_STRUCTP(r);
54 0 : r->tctx = tctx;
55 0 : }
56 :
57 : #endif /* __OPLOCK_BREAK_HANDLER_H__ */
|