diff options
author | Stefan Metzmacher <metze@samba.org> | 2011-03-13 16:24:55 +0100 |
---|---|---|
committer | Stefan Metzmacher <metze@samba.org> | 2011-03-13 17:46:02 +0100 |
commit | c1a2fd1cd15c55e73df6ab89db77aa2e7f83c346 (patch) | |
tree | b18ba2180aeef1187196cf6365288567db85e5cf /source4/librpc/rpc/dcerpc.c | |
parent | 81063f9a268e959edbb796ca72ba35da70e838c2 (diff) | |
download | samba-c1a2fd1cd15c55e73df6ab89db77aa2e7f83c346.tar.gz samba-c1a2fd1cd15c55e73df6ab89db77aa2e7f83c346.tar.bz2 samba-c1a2fd1cd15c55e73df6ab89db77aa2e7f83c346.zip |
s4:librpc/rpc: finaly make struct rpc_request and enum rpc_request_state private
metze
Autobuild-User: Stefan Metzmacher <metze@samba.org>
Autobuild-Date: Sun Mar 13 17:46:02 CET 2011 on sn-devel-104
Diffstat (limited to 'source4/librpc/rpc/dcerpc.c')
-rw-r--r-- | source4/librpc/rpc/dcerpc.c | 43 |
1 files changed, 43 insertions, 0 deletions
diff --git a/source4/librpc/rpc/dcerpc.c b/source4/librpc/rpc/dcerpc.c index bb7c4c536d..cc72866866 100644 --- a/source4/librpc/rpc/dcerpc.c +++ b/source4/librpc/rpc/dcerpc.c @@ -33,6 +33,49 @@ #include "lib/util/tevent_ntstatus.h" #include "librpc/rpc/rpc_common.h" +enum rpc_request_state { + RPC_REQUEST_QUEUED, + RPC_REQUEST_PENDING, + RPC_REQUEST_DONE +}; + +/* + handle for an async dcerpc request +*/ +struct rpc_request { + struct rpc_request *next, *prev; + struct dcerpc_pipe *p; + NTSTATUS status; + uint32_t call_id; + enum rpc_request_state state; + DATA_BLOB payload; + uint32_t flags; + uint32_t fault_code; + + /* this is used to distinguish bind and alter_context requests + from normal requests */ + void (*recv_handler)(struct rpc_request *conn, + DATA_BLOB *blob, struct ncacn_packet *pkt); + + const struct GUID *object; + uint16_t opnum; + DATA_BLOB request_data; + bool ignore_timeout; + + /* use by the ndr level async recv call */ + struct { + const struct ndr_interface_table *table; + uint32_t opnum; + void *struct_ptr; + TALLOC_CTX *mem_ctx; + } ndr; + + struct { + void (*callback)(struct rpc_request *); + void *private_data; + } async; +}; + _PUBLIC_ NTSTATUS dcerpc_init(struct loadparm_context *lp_ctx) { return gensec_init(lp_ctx); |