CHECK_VAL((__io)->out.lease_response.lease_epoch, 0); \
} while(0)
-#define CHECK_LEASE_V2(__io, __state, __oplevel, __key, __flags, __parent, __epoch) \
- do { \
- CHECK_VAL((__io)->out.lease_response_v2.lease_version, 2); \
- if (__oplevel) { \
- CHECK_VAL((__io)->out.oplock_level, SMB2_OPLOCK_LEVEL_LEASE); \
- CHECK_VAL((__io)->out.lease_response_v2.lease_key.data[0], (__key)); \
- CHECK_VAL((__io)->out.lease_response_v2.lease_key.data[1], ~(__key)); \
- CHECK_VAL((__io)->out.lease_response_v2.lease_state, smb2_util_lease_state(__state)); \
- } else { \
- CHECK_VAL((__io)->out.oplock_level, SMB2_OPLOCK_LEVEL_NONE); \
- CHECK_VAL((__io)->out.lease_response_v2.lease_key.data[0], 0); \
- CHECK_VAL((__io)->out.lease_response_v2.lease_key.data[1], 0); \
- CHECK_VAL((__io)->out.lease_response_v2.lease_state, 0); \
- } \
- \
- CHECK_VAL((__io)->out.lease_response_v2.lease_flags, __flags); \
- if (__flags & SMB2_LEASE_FLAG_PARENT_LEASE_KEY_SET) { \
- CHECK_VAL((__io)->out.lease_response_v2.parent_lease_key.data[0], (__parent)); \
- CHECK_VAL((__io)->out.lease_response_v2.parent_lease_key.data[1], ~(__parent)); \
- } \
- CHECK_VAL((__io)->out.lease_response_v2.lease_duration, 0); \
- CHECK_VAL((__io)->out.lease_response_v2.lease_epoch, (__epoch)); \
- } while(0)
-
static bool retrieve_ipv4_address_from_net_interface_info(struct torture_context *tctx,
struct fsctl_net_iface_info *info,
const char **ipv4)
static const uint64_t LEASE2F1 = 0xDEADBEEFFEEDBEADull;
static const uint64_t LEASE2F2 = 0xDAD0FFEDD00DF00Dull;
static const uint64_t LEASE2F3 = 0xBAD0FFEDD00DF00Dull;
-static const uint64_t LEASE2F2GD = 0xEEEEEEEEEEEEEEEEull;
static bool test_multichannel_lease_break(struct torture_context *tctx,
struct smb2_tree *tree1)
smb2_lease_create(&io1, &ls1, false, fname1, LEASE2F1,
smb2_util_lease_state("RHW"));
- smb2_lease_v2_create(&io1, &ls1, false, fname1, LEASE2F1,
- NULL,
- smb2_util_lease_state("RHW"),
- 1);
status = smb2_create(tree2A, mem_ctx, &io1);
CHECK_STATUS(status, NT_STATUS_OK);
h_client2_file1 = io1.out.file.handle;
CHECK_CREATED(&io1, CREATED, FILE_ATTRIBUTE_ARCHIVE);
- CHECK_LEASE_V2(&io1, "RHW", true, LEASE2F1, 0, 0, 2);
+ CHECK_LEASE(&io1, "RHW", true, LEASE2F1, 0);
CHECK_VAL(io1.out.durable_open_v2, false); //true);
CHECK_VAL(io1.out.timeout, io1.in.timeout);
CHECK_VAL(io1.out.durable_open, false);
torture_comment(tctx, "client2 opens fname2 via session 2B\n");
/* 2b opens file2 */
-#if 0
smb2_lease_create(&io2, &ls2, false, fname2, LEASE2F2,
smb2_util_lease_state("RHW"));
-#else
-
- smb2_lease_v2_create(&io2, &ls2, false, fname2, LEASE2F2GD,
- NULL,
- smb2_util_lease_state("RHW"),
- 1);
-#endif
status = smb2_create(tree2B, mem_ctx, &io2);
CHECK_STATUS(status, NT_STATUS_OK);
h_client2_file2 = io2.out.file.handle;
CHECK_CREATED(&io2, CREATED, FILE_ATTRIBUTE_ARCHIVE);
- CHECK_LEASE_V2(&io2, "RHW", true, LEASE2F2GD, 0, 0, 2);
+ CHECK_LEASE(&io2, "RHW", true, LEASE2F2, 0);
CHECK_VAL(io2.out.durable_open_v2, false); //true);
CHECK_VAL(io2.out.timeout, io2.in.timeout);
CHECK_VAL(io2.out.durable_open, false);
CHECK_VAL(lease_break_info.count, 0);
-#if 0
+
block_ok = torture_block_tcp_transport(tctx, transport2A);
block_ok = torture_block_tcp_transport(tctx, transport2B);
block_ok = torture_block_tcp_transport(tctx, transport2C);
-
smb2_lease_create(&io1, &ls1, false, fname1, LEASE1F1,
smb2_util_lease_state("RHW"));
{
unblock_ok = torture_unblock_tcp_transport(tctx, transport2B);
torture_unblock_cleanup(tctx);
exit(0);
-#endif
+
/*
* 1 opens file1
* batchoplock break?
h_client1_file1 = io1.out.file.handle;
CHECK_CREATED(&io1, EXISTED, FILE_ATTRIBUTE_ARCHIVE);
CHECK_LEASE(&io1, "RH", true, LEASE1F1, 0);
- CHECK_BREAK_INFO_V2(transport2A, "RHW", "RH", LEASE2F1, 3);
+ CHECK_BREAK_INFO("RHW", "RH", LEASE2F1);
CHECK_VAL(io1.out.durable_open_v2, false);
CHECK_VAL(io1.out.timeout, 0);
CHECK_VAL(io1.out.durable_open, false);