diff options
-rw-r--r-- | source3/librpc/rpc/dcerpc_ep.c | 15 | ||||
-rw-r--r-- | source3/librpc/rpc/dcerpc_ep.h | 12 |
2 files changed, 27 insertions, 0 deletions
diff --git a/source3/librpc/rpc/dcerpc_ep.c b/source3/librpc/rpc/dcerpc_ep.c index d73c43dc64..e734be3b2b 100644 --- a/source3/librpc/rpc/dcerpc_ep.c +++ b/source3/librpc/rpc/dcerpc_ep.c @@ -243,6 +243,21 @@ NTSTATUS dcerpc_binding_vector_add_unix(const struct ndr_interface_table *iface, return NT_STATUS_OK; } +NTSTATUS dcerpc_binding_vector_replace_iface(const struct ndr_interface_table *iface, + struct dcerpc_binding_vector *v) +{ + uint32_t i; + + for (i = 0; i < v->count; i++) { + struct dcerpc_binding *b; + + b = &(v->bindings[i]); + b->object = iface->syntax_id; + } + + return NT_STATUS_OK; +} + struct dcerpc_binding_vector *dcerpc_binding_vector_dup(TALLOC_CTX *mem_ctx, const struct dcerpc_binding_vector *bvec) { diff --git a/source3/librpc/rpc/dcerpc_ep.h b/source3/librpc/rpc/dcerpc_ep.h index c982ff853c..ba1e688e6c 100644 --- a/source3/librpc/rpc/dcerpc_ep.h +++ b/source3/librpc/rpc/dcerpc_ep.h @@ -95,6 +95,18 @@ NTSTATUS dcerpc_binding_vector_add_unix(const struct ndr_interface_table *iface, struct dcerpc_binding_vector *dcerpc_binding_vector_dup(TALLOC_CTX *mem_ctx, const struct dcerpc_binding_vector *bvec); +/** + * @brief Replace the interface of the bindings in the vector. + * + * @param[in] iface The new interface identifier to use. + * + * @param[in] v The binding vector to change. + * + * @return An NTSTATUS error code. + */ +NTSTATUS dcerpc_binding_vector_replace_iface(const struct ndr_interface_table *iface, + struct dcerpc_binding_vector *v); + NTSTATUS dcerpc_binding_vector_create(TALLOC_CTX *mem_ctx, const struct ndr_interface_table *iface, uint16_t port, |