summaryrefslogtreecommitdiffstats
path: root/source3/include/async_smb.h
diff options
context:
space:
mode:
authorVolker Lendecke <vl@samba.org>2008-08-25 15:59:36 +0200
committerVolker Lendecke <vl@samba.org>2008-08-28 18:15:59 +0200
commitb054f14111337c826548d7728dc2b0a66ab5beae (patch)
treefa2178734674d5ab14fadc80b19f118c9a8b910e /source3/include/async_smb.h
parent65dcdf9c32e8ac43344b23db528206c02fcb967c (diff)
downloadsamba-b054f14111337c826548d7728dc2b0a66ab5beae.tar.gz
samba-b054f14111337c826548d7728dc2b0a66ab5beae.tar.xz
samba-b054f14111337c826548d7728dc2b0a66ab5beae.zip
Activate code to enable chained requests
Add the CHAIN1 torture test (This used to be commit 82992d74a99b056bbfe90e1b79190e0b7c0bf2bd)
Diffstat (limited to 'source3/include/async_smb.h')
-rw-r--r--source3/include/async_smb.h21
1 files changed, 19 insertions, 2 deletions
diff --git a/source3/include/async_smb.h b/source3/include/async_smb.h
index 031ab233dd4..1053de29422 100644
--- a/source3/include/async_smb.h
+++ b/source3/include/async_smb.h
@@ -22,6 +22,13 @@
#include "includes.h"
+/**
+ * struct cli_request is the state holder for an async client request we sent
+ * to the server. It can consist of more than one struct async_req that we
+ * have to server if the application did a cli_chain_cork() and
+ * cli_chain_uncork()
+ */
+
struct cli_request {
/**
* "prev" and "next" form the doubly linked list in
@@ -30,9 +37,15 @@ struct cli_request {
struct cli_request *prev, *next;
/**
- * "our" struct async_req;
+ * num_async: How many chained requests do we serve?
+ */
+ int num_async;
+
+ /**
+ * async: This is the list of chained requests that were queued up by
+ * cli_request_chain before we sent out this request
*/
- struct async_req *async;
+ struct async_req **async;
/**
* The client connection for this request
@@ -92,6 +105,10 @@ struct async_req *cli_request_send(TALLOC_CTX *mem_ctx,
uint8_t wct, const uint16_t *vwv,
uint16_t num_bytes, const uint8_t *bytes);
+bool cli_chain_cork(struct cli_state *cli, struct event_context *ev,
+ size_t size_hint);
+void cli_chain_uncork(struct cli_state *cli);
+
/*
* Convenience function to get the SMB part out of an async_req
*/