From 6677a5431cc33d8fba565ee068d4c87050ddbd96 Mon Sep 17 00:00:00 2001 From: Stefan Metzmacher Date: Mon, 8 Mar 2010 12:29:52 +0100 Subject: s4:librpc/rpc: add very basic dcerpc_binding_handle infrastructure metze --- source4/librpc/rpc/dcerpc.c | 8 ++++++++ source4/librpc/rpc/dcerpc.h | 11 +++++++++++ 2 files changed, 19 insertions(+) (limited to 'source4/librpc') diff --git a/source4/librpc/rpc/dcerpc.c b/source4/librpc/rpc/dcerpc.c index 63ff36768b..064159f354 100644 --- a/source4/librpc/rpc/dcerpc.c +++ b/source4/librpc/rpc/dcerpc.c @@ -118,6 +118,13 @@ _PUBLIC_ struct dcerpc_pipe *dcerpc_pipe_init(TALLOC_CTX *mem_ctx, struct tevent p->conn->flags |= DCERPC_DEBUG_PRINT_BOTH; } + p->binding_handle = talloc(p, struct dcerpc_binding_handle); + if (p->binding_handle == NULL) { + talloc_free(p); + return NULL; + } + p->binding_handle->private_data = p; + return p; } @@ -1701,3 +1708,4 @@ _PUBLIC_ NTSTATUS dcerpc_alter_context(struct dcerpc_pipe *p, creq = dcerpc_alter_context_send(p, mem_ctx, syntax, transfer_syntax); return dcerpc_alter_context_recv(creq); } + diff --git a/source4/librpc/rpc/dcerpc.h b/source4/librpc/rpc/dcerpc.h index b539fc2620..08210e03c0 100644 --- a/source4/librpc/rpc/dcerpc.h +++ b/source4/librpc/rpc/dcerpc.h @@ -31,6 +31,10 @@ #include "librpc/gen_ndr/dcerpc.h" #include "../librpc/ndr/libndr.h" +struct tevent_context; +struct tevent_req; +struct dcerpc_binding_handle; + enum dcerpc_transport_t { NCA_UNKNOWN, NCACN_NP, NCACN_IP_TCP, NCACN_IP_UDP, NCACN_VNS_IPC, NCACN_VNS_SPP, NCACN_AT_DSP, NCADG_AT_DDP, NCALRPC, NCACN_UNIX_STREAM, @@ -113,6 +117,8 @@ struct dcerpc_pipe { struct dcerpc_connection *conn; struct dcerpc_binding *binding; + struct dcerpc_binding_handle *binding_handle; + /** the last fault code from a DCERPC fault */ uint32_t last_fault_code; @@ -392,4 +398,9 @@ enum dcerpc_transport_t dcerpc_transport_by_endpoint_protocol(int prot); const char *dcerpc_floor_get_rhs_data(TALLOC_CTX *mem_ctx, struct epm_floor *epm_floor); +/* TODO: this needs to be completely private */ +struct dcerpc_binding_handle { + void *private_data; +}; + #endif /* __DCERPC_H__ */ -- cgit