summaryrefslogtreecommitdiff
path: root/source4/librpc/rpc/dcerpc.h
diff options
context:
space:
mode:
authorVolker Lendecke <vlendec@samba.org>2005-11-02 05:34:17 +0000
committerGerald (Jerry) Carter <jerry@samba.org>2007-10-10 13:45:41 -0500
commit66d3ee9ccb9807ca443962ef2a887627505c537c (patch)
tree44802dcc76d9271d0ba02408c9fd87423623cf7e /source4/librpc/rpc/dcerpc.h
parent66caa3234d14321b579e5d8befa3a12579c6a68e (diff)
downloadsamba-66d3ee9ccb9807ca443962ef2a887627505c537c.tar.gz
samba-66d3ee9ccb9807ca443962ef2a887627505c537c.tar.bz2
samba-66d3ee9ccb9807ca443962ef2a887627505c537c.zip
r11473: Based on work by Jelmer, implement the [async] flag for rpc requests. If it's
not there (it's not yet on *any* call... :-)), the rpc client strictly sequences calls to an rpc pipe. Might need some more work on the exact sequencing semantics when a pipe with both sync and async calls is actually deployed, but I want it in for winbind simplification. Volker (This used to be commit b8f324e4f000971b7dafc263c16dd4af958ee7f9)
Diffstat (limited to 'source4/librpc/rpc/dcerpc.h')
-rw-r--r--source4/librpc/rpc/dcerpc.h11
1 files changed, 10 insertions, 1 deletions
diff --git a/source4/librpc/rpc/dcerpc.h b/source4/librpc/rpc/dcerpc.h
index c5b0ad159b..85fd36f066 100644
--- a/source4/librpc/rpc/dcerpc.h
+++ b/source4/librpc/rpc/dcerpc.h
@@ -69,9 +69,12 @@ struct dcerpc_connection {
void (*recv_data)(struct dcerpc_connection *, DATA_BLOB *, NTSTATUS status);
} transport;
- /* pending requests */
+ /* Requests that have been sent, waiting for a reply */
struct rpc_request *pending;
+ /* Sync requests waiting to be shipped */
+ struct rpc_request *request_queue;
+
/* private pointer for pending full requests */
void *full_request_private;
@@ -145,6 +148,7 @@ struct dcerpc_interface_call {
ndr_push_flags_fn_t ndr_push;
ndr_pull_flags_fn_t ndr_pull;
ndr_print_function_t ndr_print;
+ BOOL async;
};
struct dcerpc_endpoint_list {
@@ -204,6 +208,11 @@ struct rpc_request {
uint_t flags;
uint32_t fault_code;
+ const struct GUID *object;
+ uint16_t opnum;
+ DATA_BLOB request_data;
+ BOOL async_call;
+
/* use by the ndr level async recv call */
struct {
const struct dcerpc_interface_table *table;