From 6836f5d0b167027908da9a08b9b219520997b563 Mon Sep 17 00:00:00 2001 From: Andrew Tridgell Date: Sun, 9 Jan 2005 08:34:05 +0000 Subject: r4616: the first phase in the addition of proper support for dcerpc_alter_context and multiple context_ids in the dcerpc client library. This stage does the following: - split "struct dcerpc_pipe" into two parts, the main part being "struct dcerpc_connection", which contains all the parts not dependent on the context, and "struct dcerpc_pipe" which has the context dependent part. This is similar to the layering in libcli_*() for SMB - disable the current dcerpc_alter code. I've used a #warning until i get the 2nd phase finished. I don't know how portable #warning is, but it won't be long before I add full alter context support anyway, so it won't last long - cleanup the allocation of dcerpc_pipe structures. The previous code was quite awkward. (This used to be commit 4004c69937be7e5dae56f9567ca607f982d395d3) --- source4/rpc_server/remote/dcesrv_remote.c | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) (limited to 'source4/rpc_server') diff --git a/source4/rpc_server/remote/dcesrv_remote.c b/source4/rpc_server/remote/dcesrv_remote.c index 8feb54a500..83c550974d 100644 --- a/source4/rpc_server/remote/dcesrv_remote.c +++ b/source4/rpc_server/remote/dcesrv_remote.c @@ -105,7 +105,7 @@ static NTSTATUS remote_op_dispatch(struct dcesrv_call_state *dce_call, TALLOC_CT name = table->calls[opnum].name; call = &table->calls[opnum]; - if (private->c_pipe->flags & DCERPC_DEBUG_PRINT_IN) { + if (private->c_pipe->conn->flags & DCERPC_DEBUG_PRINT_IN) { ndr_print_function_debug(call->ndr_print, name, NDR_IN | NDR_SET_VALUES, r); } @@ -118,7 +118,8 @@ static NTSTATUS remote_op_dispatch(struct dcesrv_call_state *dce_call, TALLOC_CT return NT_STATUS_NET_WRITE_FAULT; } - if ((dce_call->fault_code == 0) && (private->c_pipe->flags & DCERPC_DEBUG_PRINT_OUT)) { + if ((dce_call->fault_code == 0) && + (private->c_pipe->conn->flags & DCERPC_DEBUG_PRINT_OUT)) { ndr_print_function_debug(call->ndr_print, name, NDR_OUT, r); } @@ -212,9 +213,9 @@ static BOOL remote_fill_interface(struct dcesrv_interface *iface, const struct d static BOOL remote_op_interface_by_uuid(struct dcesrv_interface *iface, const char *uuid, uint32_t if_version) { - struct dcerpc_interface_list *l; + const struct dcerpc_interface_list *l; - for (l=dcerpc_pipes;l;l=l->next) { + for (l=librpc_dcerpc_pipes();l;l=l->next) { if (l->table->if_version == if_version && strcmp(l->table->uuid, uuid)==0) { return remote_fill_interface(iface, l->table); @@ -226,9 +227,9 @@ static BOOL remote_op_interface_by_uuid(struct dcesrv_interface *iface, const ch static BOOL remote_op_interface_by_name(struct dcesrv_interface *iface, const char *name) { - struct dcerpc_interface_list *l; + const struct dcerpc_interface_list *l; - for (l=dcerpc_pipes;l;l=l->next) { + for (l=librpc_dcerpc_pipes();l;l=l->next) { if (strcmp(l->table->name, name)==0) { return remote_fill_interface(iface, l->table); } -- cgit