From 0c239d32094f8cc20bd36b55a4d08f57d04bd263 Mon Sep 17 00:00:00 2001 From: Stefan Metzmacher Date: Wed, 12 Nov 2014 15:43:56 +0100 Subject: s4:torture/smb2: make it possible to skip the automatic ack of lease breaks. Signed-off-by: Stefan Metzmacher Reviewed-by: Jeremy Allison --- source4/torture/smb2/lease.c | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/source4/torture/smb2/lease.c b/source4/torture/smb2/lease.c index 14ce739f2e..b9df9ba302 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; -- cgit