s4:torture/smb2: make it possible to skip the automatic ack of lease breaks.
authorStefan Metzmacher <metze@samba.org>
Wed, 12 Nov 2014 14:43:56 +0000 (15:43 +0100)
committerStefan Metzmacher <metze@samba.org>
Thu, 27 Nov 2014 15:45:06 +0000 (16:45 +0100)
Signed-off-by: Stefan Metzmacher <metze@samba.org>
Reviewed-by: Jeremy Allison <jra@samba.org>
source4/torture/smb2/lease.c

index 14ce739f2e9d8d663f0a5e5af050442bcfc95bbb..b9df9ba30222868be787fe7f8e8d9a4e623ac748 100644 (file)
@@ -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;