summaryrefslogtreecommitdiff
path: root/source4/ntvfs/ipc
diff options
context:
space:
mode:
authorStefan Metzmacher <metze@samba.org>2004-06-07 21:34:32 +0000
committerGerald (Jerry) Carter <jerry@samba.org>2007-10-10 12:56:37 -0500
commitb717b40235b2433b26b20ced36142c250f9c411e (patch)
treea473705f0b0a7a509d0d675998b763fc6e244a65 /source4/ntvfs/ipc
parentfb1cc0fc0d0dec3384886b42e9377b531defe352 (diff)
downloadsamba-b717b40235b2433b26b20ced36142c250f9c411e.tar.gz
samba-b717b40235b2433b26b20ced36142c250f9c411e.tar.bz2
samba-b717b40235b2433b26b20ced36142c250f9c411e.zip
r1078: the dxesrv_crypto_* implementations should now explicit set
the dce_conn->auth_state.session_info ( the ntlmssp one works fine, but the schannel one isn't implemented yet) this is also set by the ntvfs_ipc backend on the endpoint connect. metze (This used to be commit ad3dd1789e9f124493519cb4731d9f5a563fd051)
Diffstat (limited to 'source4/ntvfs/ipc')
-rw-r--r--source4/ntvfs/ipc/vfs_ipc.c21
1 files changed, 13 insertions, 8 deletions
diff --git a/source4/ntvfs/ipc/vfs_ipc.c b/source4/ntvfs/ipc/vfs_ipc.c
index 7ebf35d5cb..9279e0e85a 100644
--- a/source4/ntvfs/ipc/vfs_ipc.c
+++ b/source4/ntvfs/ipc/vfs_ipc.c
@@ -195,6 +195,7 @@ static NTSTATUS ipc_open_generic(struct request_context *req, const char *fname,
TALLOC_CTX *mem_ctx;
NTSTATUS status;
struct dcesrv_ep_description ep_description;
+ struct auth_session_info *session_info = NULL;
struct ipc_private *private = req->conn->ntvfs_private;
mem_ctx = talloc_init("ipc_open '%s'", fname);
@@ -240,7 +241,18 @@ static NTSTATUS ipc_open_generic(struct request_context *req, const char *fname,
ep_description.type = ENDPOINT_SMB;
ep_description.info.smb_pipe = p->pipe_name;
- status = dcesrv_endpoint_search_connect(&req->smb->dcesrv, &ep_description, &p->dce_conn);
+ /* tell the RPC layer the session_info */
+ if (req->user_ctx->vuser) {
+ /*
+ * TODO: we need to reference count the entire session_info
+ */
+ session_info = req->user_ctx->vuser->session_info;
+ }
+
+ status = dcesrv_endpoint_search_connect(&req->smb->dcesrv,
+ &ep_description,
+ session_info,
+ &p->dce_conn);
if (!NT_STATUS_IS_OK(status)) {
talloc_destroy(mem_ctx);
return status;
@@ -252,13 +264,6 @@ static NTSTATUS ipc_open_generic(struct request_context *req, const char *fname,
*ps = p;
- /* tell the RPC layer the transport session key */
- if (req->user_ctx->vuser) {
- /* TODO: Fix this to push more than just a session key
- * down - we need the entire session_info, reference counted... */
- dcesrv_set_session_key(p->dce_conn, req->user_ctx->vuser->session_info->session_key);
- }
-
return NT_STATUS_OK;
}