summaryrefslogtreecommitdiffstats
path: root/source/librpc/rpc/dcerpc.h
diff options
context:
space:
mode:
authorAndrew Tridgell <tridge@samba.org>2005-11-21 06:01:02 +0000
committerGerald (Jerry) Carter <jerry@samba.org>2007-10-10 13:46:33 -0500
commit938e372bffbee1982ad8268b83c43514fd2e5633 (patch)
tree4ef54f118bbe207a4bde1328f07cd05803852a2a /source/librpc/rpc/dcerpc.h
parent180c209c1bb48f6421043de2d0d48c29fc7f9274 (diff)
downloadsamba-938e372bffbee1982ad8268b83c43514fd2e5633.tar.gz
samba-938e372bffbee1982ad8268b83c43514fd2e5633.tar.xz
samba-938e372bffbee1982ad8268b83c43514fd2e5633.zip
r11819: simplified the async rpc bind code a little.
- removed the struct dcerpc_request_state as all the state information is already available on the dcerpc_pipe structure, so just use that - added a single dcerpc_recv_data() handler for receiving packets from the transport layer. This then does the initial decoding of the dcerpc packet, and then looks at the packet type in order to work out who to dispatch it to. This should allow in-flight async rpc requests to still work while a new bind or alter context is happening - ensure that if the transport indicates the connection is dead that any in-flight bind or alter context requests are given an error - removed full_request_private and instead use separate bind_private and alter_private pointers - added a few comments for some bits I found hard to understand
Diffstat (limited to 'source/librpc/rpc/dcerpc.h')
-rw-r--r--source/librpc/rpc/dcerpc.h7
1 files changed, 5 insertions, 2 deletions
diff --git a/source/librpc/rpc/dcerpc.h b/source/librpc/rpc/dcerpc.h
index 85fd36f0668..a526ed5a019 100644
--- a/source/librpc/rpc/dcerpc.h
+++ b/source/librpc/rpc/dcerpc.h
@@ -75,8 +75,11 @@ struct dcerpc_connection {
/* Sync requests waiting to be shipped */
struct rpc_request *request_queue;
- /* private pointer for pending full requests */
- void *full_request_private;
+ /* private pointer for pending binds */
+ void *bind_private;
+
+ /* private pointer for pending alter context requests */
+ void *alter_private;
/* the next context_id to be assigned */
uint32_t next_context_id;