summaryrefslogtreecommitdiff
path: root/source4/rpc_server
diff options
context:
space:
mode:
authorStefan Metzmacher <metze@samba.org>2006-05-21 11:39:50 +0000
committerGerald (Jerry) Carter <jerry@samba.org>2007-10-10 14:08:17 -0500
commite941cc3003f84de4d7846c4f19ce5d006e9f8e98 (patch)
treebf56f018b65b3cabf732a5861df4351337679fea /source4/rpc_server
parent6ba94bb12f39bf792356c8c01d9de0cfc2551760 (diff)
downloadsamba-e941cc3003f84de4d7846c4f19ce5d006e9f8e98.tar.gz
samba-e941cc3003f84de4d7846c4f19ce5d006e9f8e98.tar.bz2
samba-e941cc3003f84de4d7846c4f19ce5d006e9f8e98.zip
r15772: pass the messaging context and server_id to the dcerpc server subsystem
metze (This used to be commit fb1debf219089188d1a8233ab3ff4ff314f7df0b)
Diffstat (limited to 'source4/rpc_server')
-rw-r--r--source4/rpc_server/dcerpc_server.c10
-rw-r--r--source4/rpc_server/dcerpc_server.h6
-rw-r--r--source4/rpc_server/dcerpc_sock.c2
3 files changed, 17 insertions, 1 deletions
diff --git a/source4/rpc_server/dcerpc_server.c b/source4/rpc_server/dcerpc_server.c
index b56e397cf0..394bd45cea 100644
--- a/source4/rpc_server/dcerpc_server.c
+++ b/source4/rpc_server/dcerpc_server.c
@@ -292,6 +292,8 @@ NTSTATUS dcesrv_endpoint_connect(struct dcesrv_context *dce_ctx,
const struct dcesrv_endpoint *ep,
struct auth_session_info *session_info,
struct event_context *event_ctx,
+ struct messaging_context *msg_ctx,
+ uint32_t server_id,
uint32_t state_flags,
struct dcesrv_connection **_p)
{
@@ -321,6 +323,8 @@ NTSTATUS dcesrv_endpoint_connect(struct dcesrv_context *dce_ctx,
p->auth_state.session_info = session_info;
p->auth_state.session_key = dcesrv_generic_session_key;
p->event_ctx = event_ctx;
+ p->msg_ctx = msg_ctx;
+ p->server_id = server_id;
p->processing = False;
p->state_flags = state_flags;
ZERO_STRUCT(p->transport);
@@ -339,6 +343,8 @@ _PUBLIC_ NTSTATUS dcesrv_endpoint_search_connect(struct dcesrv_context *dce_ctx,
const struct dcerpc_binding *ep_description,
struct auth_session_info *session_info,
struct event_context *event_ctx,
+ struct messaging_context *msg_ctx,
+ uint32_t server_id,
uint32_t state_flags,
struct dcesrv_connection **dce_conn_p)
{
@@ -351,7 +357,9 @@ _PUBLIC_ NTSTATUS dcesrv_endpoint_search_connect(struct dcesrv_context *dce_ctx,
return NT_STATUS_OBJECT_NAME_NOT_FOUND;
}
- status = dcesrv_endpoint_connect(dce_ctx, mem_ctx, ep, session_info, event_ctx, state_flags, dce_conn_p);
+ status = dcesrv_endpoint_connect(dce_ctx, mem_ctx, ep, session_info,
+ event_ctx, msg_ctx, server_id,
+ state_flags, dce_conn_p);
NT_STATUS_NOT_OK_RETURN(status);
(*dce_conn_p)->auth_state.session_key = dcesrv_inherited_session_key;
diff --git a/source4/rpc_server/dcerpc_server.h b/source4/rpc_server/dcerpc_server.h
index ca169fa2fa..57d8bb2d79 100644
--- a/source4/rpc_server/dcerpc_server.h
+++ b/source4/rpc_server/dcerpc_server.h
@@ -178,6 +178,12 @@ struct dcesrv_connection {
/* the event_context that will be used for this connection */
struct event_context *event_ctx;
+ /* the message_context that will be used for this connection */
+ struct messaging_context *msg_ctx;
+
+ /* the server_id that will be used for this connection */
+ uint32_t server_id;
+
/* the transport level session key */
DATA_BLOB transport_session_key;
diff --git a/source4/rpc_server/dcerpc_sock.c b/source4/rpc_server/dcerpc_sock.c
index 3346dedd44..946052e61d 100644
--- a/source4/rpc_server/dcerpc_sock.c
+++ b/source4/rpc_server/dcerpc_sock.c
@@ -113,6 +113,8 @@ static void dcesrv_sock_accept(struct stream_connection *srv_conn)
dcesrv_sock->endpoint,
session_info,
srv_conn->event.ctx,
+ srv_conn->msg_ctx,
+ srv_conn->server_id,
DCESRV_CALL_STATE_FLAG_MAY_ASYNC,
&dcesrv_conn);
if (!NT_STATUS_IS_OK(status)) {