r15772: pass the messaging context and server_id to the dcerpc server subsystem
authorStefan Metzmacher <metze@samba.org>
Sun, 21 May 2006 11:39:50 +0000 (11:39 +0000)
committerGerald (Jerry) Carter <jerry@samba.org>
Wed, 10 Oct 2007 19:08:17 +0000 (14:08 -0500)
metze
(This used to be commit fb1debf219089188d1a8233ab3ff4ff314f7df0b)

source4/ntvfs/ipc/vfs_ipc.c
source4/rpc_server/dcerpc_server.c
source4/rpc_server/dcerpc_server.h
source4/rpc_server/dcerpc_sock.c

index fdad41145b14a1ede7839d63958a7f4d5b0f7c86..2e7c538c3fb553c3ec85b706b38b7ee5dc2d46cf 100644 (file)
@@ -242,6 +242,8 @@ static NTSTATUS ipc_open_generic(struct ntvfs_module_context *ntvfs,
                                                ep_description, 
                                                h->session_info,
                                                ntvfs->ctx->event_ctx,
+                                               ntvfs->ctx->msg_ctx,
+                                               ntvfs->ctx->server_id,
                                                0,
                                                &p->dce_conn);
        NT_STATUS_NOT_OK_RETURN(status);
index b56e397cf08015c1743d6dcff756bdb2ad8d6f02..394bd45cea15bfe2645e7f15543ad329d2d5736c 100644 (file)
@@ -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;
index ca169fa2fa36bbfd0f6c7b0491e76ab8e64203b2..57d8bb2d79db394efaac1dff018daa53fd8a35ab 100644 (file)
@@ -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;
 
index 3346dedd443e1f702cc236c862339740e3d224dd..946052e61d29ac469da3dbb80c782cc8e4cf67e3 100644 (file)
@@ -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)) {