summaryrefslogtreecommitdiff
path: root/source4/librpc
diff options
context:
space:
mode:
Diffstat (limited to 'source4/librpc')
-rw-r--r--source4/librpc/rpc/dcerpc.c43
-rw-r--r--source4/librpc/rpc/dcerpc.h44
2 files changed, 44 insertions, 43 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);
diff --git a/source4/librpc/rpc/dcerpc.h b/source4/librpc/rpc/dcerpc.h
index a6ac8c37eb..22f4b1e594 100644
--- a/source4/librpc/rpc/dcerpc.h
+++ b/source4/librpc/rpc/dcerpc.h
@@ -53,6 +53,7 @@ struct dcecli_security {
/*
this holds the information that is not specific to a particular rpc context_id
*/
+struct rpc_request;
struct dcecli_connection {
uint32_t call_id;
uint32_t srv_max_xmit_frag;
@@ -190,49 +191,6 @@ struct dcerpc_pipe_connect {
};
-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;
-};
-
struct epm_tower;
struct epm_floor;