From 069db9b630b19835e8a008b50c0bed4d7245bf51 Mon Sep 17 00:00:00 2001 From: Stefan Metzmacher Date: Wed, 22 Aug 2012 10:33:07 +0200 Subject: s3:smb2_break: encrypt OPLOCK BREAK notifications metze Autobuild-User(master): Stefan Metzmacher Autobuild-Date(master): Thu Aug 23 10:01:14 CEST 2012 on sn-devel-104 --- source3/smbd/smb2_break.c | 27 ++++++++++++++++++++++++--- 1 file changed, 24 insertions(+), 3 deletions(-) (limited to 'source3/smbd/smb2_break.c') diff --git a/source3/smbd/smb2_break.c b/source3/smbd/smb2_break.c index 8143b8b976..8db9e6ddec 100644 --- a/source3/smbd/smb2_break.c +++ b/source3/smbd/smb2_break.c @@ -235,6 +235,26 @@ void send_break_message_smb2(files_struct *fsp, int level) SMB2_OPLOCK_LEVEL_II : SMB2_OPLOCK_LEVEL_NONE; NTSTATUS status; + struct smbXsrv_session *session = NULL; + struct timeval tv = timeval_current(); + NTTIME now = timeval_to_nttime(&tv); + + status = smb2srv_session_lookup(fsp->conn->sconn->conn, + fsp->vuid, + now, + &session); + if (NT_STATUS_EQUAL(status, NT_STATUS_USER_SESSION_DELETED) || + (session == NULL)) + { + + DEBUG(10,("send_break_message_smb2: skip oplock break " + "for file %s, %s, smb2 level %u session %llu not found\n", + fsp_str_dbg(fsp), + fsp_fnum_dbg(fsp), + (unsigned int)smb2_oplock_level, + (unsigned long long)fsp->vuid)); + return; + } DEBUG(10,("send_break_message_smb2: sending oplock break " "for file %s, %s, smb2 level %u\n", @@ -243,9 +263,10 @@ void send_break_message_smb2(files_struct *fsp, int level) (unsigned int)smb2_oplock_level )); status = smbd_smb2_send_oplock_break(fsp->conn->sconn, - fsp->op->global->open_persistent_id, - fsp->op->global->open_volatile_id, - smb2_oplock_level); + session, + fsp->conn->tcon, + fsp->op, + smb2_oplock_level); if (!NT_STATUS_IS_OK(status)) { smbd_server_connection_terminate(fsp->conn->sconn, nt_errstr(status)); -- cgit