summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStefan Metzmacher <metze@samba.org>2014-11-12 15:43:56 +0100
committerStefan Metzmacher <metze@samba.org>2014-11-27 16:45:06 +0100
commit0c239d32094f8cc20bd36b55a4d08f57d04bd263 (patch)
tree7b848b99fba72e8a2f123209d581d09fadd6d0dd
parentc18c84ca6ca04815e8ffedb3d6f8abadad06500b (diff)
downloadsamba-0c239d32094f8cc20bd36b55a4d08f57d04bd263.tar.gz
s4:torture/smb2: make it possible to skip the automatic ack of lease breaks.
Signed-off-by: Stefan Metzmacher <metze@samba.org> Reviewed-by: Jeremy Allison <jra@samba.org>
-rw-r--r--source4/torture/smb2/lease.c13
1 files changed, 10 insertions, 3 deletions
diff --git a/source4/torture/smb2/lease.c b/source4/torture/smb2/lease.c
index 14ce739f2e9..b9df9ba3022 100644
--- a/source4/torture/smb2/lease.c
+++ b/source4/torture/smb2/lease.c
@@ -406,9 +406,10 @@ static bool test_lease_upgrade2(struct torture_context *tctx,
CHECK_VAL((__lba)->out.lease.lease_duration, 0); \
} while(0)
-static struct {
+static struct torture_lease_break {
struct smb2_lease_break lease_break;
struct smb2_transport *lease_transport;
+ bool lease_skip_ack;
struct smb2_lease_break_ack lease_break_ack;
int count;
int failures;
@@ -446,8 +447,10 @@ static struct {
CHECK_VAL(break_info.count, 1); \
CHECK_LEASE_BREAK(&break_info.lease_break, (__oldstate), \
(__state), (__key)); \
- if (break_info.lease_break.break_flags & \
- SMB2_NOTIFY_BREAK_LEASE_FLAG_ACK_REQUIRED) { \
+ if (!break_info.lease_skip_ack && \
+ (break_info.lease_break.break_flags & \
+ SMB2_NOTIFY_BREAK_LEASE_FLAG_ACK_REQUIRED)) \
+ { \
torture_wait_for_lease_break(tctx); \
CHECK_LEASE_BREAK_ACK(&break_info.lease_break_ack, \
(__state), (__key)); \
@@ -494,6 +497,10 @@ static bool torture_lease_handler(struct smb2_transport *transport,
break_info.lease_break = *lb;
break_info.count++;
+ if (break_info.lease_skip_ack) {
+ return true;
+ }
+
if (lb->break_flags & SMB2_NOTIFY_BREAK_LEASE_FLAG_ACK_REQUIRED) {
ZERO_STRUCT(io);
io.in.lease.lease_key = lb->current_lease.lease_key;