s4:librpc/rpc: add very basic dcerpc_binding_handle infrastructure
authorStefan Metzmacher <metze@samba.org>
Mon, 8 Mar 2010 11:29:52 +0000 (12:29 +0100)
committerStefan Metzmacher <metze@samba.org>
Fri, 12 Mar 2010 14:25:41 +0000 (15:25 +0100)
metze

source4/librpc/rpc/dcerpc.c
source4/librpc/rpc/dcerpc.h

index 63ff36768b5a9510cc82e8c5650a37273cc0dcf2..064159f3547925e8edb94d1fe7944a0110821579 100644 (file)
@@ -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);
 }
+
index b539fc2620e30858fd64dc48cbf775fb28886112..08210e03c030bf79d2d41655db236175e5eb1a09 100644 (file)
 #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__ */