From d15e4d30e667c0b062487790a9ddda350e0dee81 Mon Sep 17 00:00:00 2001 From: Stefan Metzmacher Date: Tue, 15 May 2007 10:50:25 +0000 Subject: r22894: don't send a 2nd request before the last one returned (at least with STATUS_PENDING) otherwise longhorn beta3 just drops the connection metze (This used to be commit 503644a5e3b005e0660aca33a880de8d87d0d8aa) --- source4/torture/smb2/notify.c | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) diff --git a/source4/torture/smb2/notify.c b/source4/torture/smb2/notify.c index 003f6d6cd6..6059628a08 100644 --- a/source4/torture/smb2/notify.c +++ b/source4/torture/smb2/notify.c @@ -27,6 +27,9 @@ #include "torture/torture.h" #include "torture/smb2/proto.h" +#include "libcli/raw/libcliraw.h" +#include "lib/events/events.h" + #define CHECK_STATUS(status, correct) do { \ if (!NT_STATUS_EQUAL(status, correct)) { \ printf("(%s) Incorrect status %s - should be %s\n", \ @@ -71,6 +74,12 @@ static BOOL test_valid_request(TALLOC_CTX *mem_ctx, struct smb2_tree *tree) n.in.unknown = 0x00000000; req = smb2_notify_send(tree, &n); + while (!req->cancel.can_cancel && req->state <= SMB2_REQUEST_RECV) { + if (event_loop_once(req->transport->socket->event.ctx) != 0) { + break; + } + } + status = torture_setup_complex_file(tree, FNAME); CHECK_STATUS(status, NT_STATUS_OK); @@ -87,6 +96,12 @@ static BOOL test_valid_request(TALLOC_CTX *mem_ctx, struct smb2_tree *tree) n.in.buffer_size = 0x00000000; req = smb2_notify_send(tree, &n); + while (!req->cancel.can_cancel && req->state <= SMB2_REQUEST_RECV) { + if (event_loop_once(req->transport->socket->event.ctx) != 0) { + break; + } + } + status = torture_setup_complex_file(tree, FNAME); CHECK_STATUS(status, NT_STATUS_OK); @@ -100,6 +115,12 @@ static BOOL test_valid_request(TALLOC_CTX *mem_ctx, struct smb2_tree *tree) n.in.buffer_size = 0x00080000; req = smb2_notify_send(tree, &n); + while (!req->cancel.can_cancel && req->state <= SMB2_REQUEST_RECV) { + if (event_loop_once(req->transport->socket->event.ctx) != 0) { + break; + } + } + status = torture_setup_complex_file(tree, FNAME); CHECK_STATUS(status, NT_STATUS_OK); @@ -126,6 +147,12 @@ static BOOL test_valid_request(TALLOC_CTX *mem_ctx, struct smb2_tree *tree) n.in.unknown = 0x00000000; req = smb2_notify_send(tree, &n); + while (!req->cancel.can_cancel && req->state <= SMB2_REQUEST_RECV) { + if (event_loop_once(req->transport->socket->event.ctx) != 0) { + break; + } + } + status = torture_setup_complex_file(tree, FNAME); CHECK_STATUS(status, NT_STATUS_OK); @@ -134,6 +161,11 @@ static BOOL test_valid_request(TALLOC_CTX *mem_ctx, struct smb2_tree *tree) n.in.buffer_size = 0x00080000; req = smb2_notify_send(tree, &n); + while (!req->cancel.can_cancel && req->state <= SMB2_REQUEST_RECV) { + if (event_loop_once(req->transport->socket->event.ctx) != 0) { + break; + } + } status = torture_setup_complex_file(tree, FNAME); CHECK_STATUS(status, NT_STATUS_OK); -- cgit