From cc5b88545de27ae37a8e8876490d0207c80fae6f Mon Sep 17 00:00:00 2001 From: Andreas Schneider Date: Thu, 3 Mar 2011 14:20:26 +0100 Subject: [PATCH] s3-rpc_server: Introduce transport in pipe_struct. MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit Signed-off-by: Günther Deschner --- source3/include/includes.h | 2 +- source3/include/ntdomain.h | 2 ++ source3/librpc/rpc/dcerpc.h | 1 + source3/rpc_server/rpc_ncacn_np.c | 1 + source3/rpc_server/rpc_server.c | 5 ++++- 5 files changed, 9 insertions(+), 2 deletions(-) diff --git a/source3/include/includes.h b/source3/include/includes.h index d715db6354a..c79c96260a4 100644 --- a/source3/include/includes.h +++ b/source3/include/includes.h @@ -612,8 +612,8 @@ extern void *cmdline_lp_ctx; #include "msdfs.h" #include "auth.h" -#include "ntdomain.h" #include "librpc/rpc/dcerpc.h" +#include "ntdomain.h" #include "client.h" #include "module.h" diff --git a/source3/include/ntdomain.h b/source3/include/ntdomain.h index e1be93c4ba2..5819c9aa65d 100644 --- a/source3/include/ntdomain.h +++ b/source3/include/ntdomain.h @@ -120,6 +120,8 @@ struct pipes_struct { struct client_address *client_id; struct client_address *server_id; + enum dcerpc_transport_t transport; + struct auth_serversupplied_info *session_info; struct messaging_context *msg_ctx; diff --git a/source3/librpc/rpc/dcerpc.h b/source3/librpc/rpc/dcerpc.h index 0f900871d19..72a8ad55da3 100644 --- a/source3/librpc/rpc/dcerpc.h +++ b/source3/librpc/rpc/dcerpc.h @@ -120,6 +120,7 @@ _PUBLIC_ NTSTATUS dcerpc_binding_build_tower(TALLOC_CTX *mem_ctx, struct epm_tower *tower); struct NL_AUTH_MESSAGE; +struct pipe_auth_data; /* The following definitions come from librpc/rpc/dcerpc_helpers.c */ NTSTATUS dcerpc_push_ncacn_packet(TALLOC_CTX *mem_ctx, diff --git a/source3/rpc_server/rpc_ncacn_np.c b/source3/rpc_server/rpc_ncacn_np.c index 276e3f85dbd..41985e4ee07 100644 --- a/source3/rpc_server/rpc_ncacn_np.c +++ b/source3/rpc_server/rpc_ncacn_np.c @@ -166,6 +166,7 @@ struct pipes_struct *make_internal_rpc_pipe_p(TALLOC_CTX *mem_ctx, p->endian = RPC_LITTLE_ENDIAN; p->syntax = *syntax; + p->transport = NCALRPC; DEBUG(4,("Created internal pipe %s (pipes_open=%d)\n", get_pipe_name_from_syntax(talloc_tos(), syntax), pipes_open)); diff --git a/source3/rpc_server/rpc_server.c b/source3/rpc_server/rpc_server.c index eb98a447f52..4cab4f1521e 100644 --- a/source3/rpc_server/rpc_server.c +++ b/source3/rpc_server/rpc_server.c @@ -76,6 +76,7 @@ static NTSTATUS auth_anonymous_session_info(TALLOC_CTX *mem_ctx, static int make_server_pipes_struct(TALLOC_CTX *mem_ctx, const char *pipe_name, const struct ndr_syntax_id id, + enum dcerpc_transport_t transport, const char *client_address, const char *server_address, struct auth_session_info_transport *session_info, @@ -94,6 +95,7 @@ static int make_server_pipes_struct(TALLOC_CTX *mem_ctx, return -1; } p->syntax = id; + p->transport = transport; p->mem_ctx = talloc_named(p, 0, "pipe %s %p", pipe_name, p); if (!p->mem_ctx) { @@ -540,7 +542,7 @@ static void named_pipe_accept_done(struct tevent_req *subreq) } ret = make_server_pipes_struct(npc, - npc->pipe_name, npc->pipe_id, + npc->pipe_name, npc->pipe_id, NCACN_NP, cli_addr, NULL, npc->session_info, &npc->p, &error); if (ret != 0) { @@ -1218,6 +1220,7 @@ static void dcerpc_ncacn_accept(struct tevent_context *ev_ctx, rc = make_server_pipes_struct(ncacn_conn, pipe_name, ncacn_conn->syntax_id, + ncacn_conn->transport, cli_str, srv_str, ncacn_conn->session_info, -- 2.11.4.GIT