summaryrefslogtreecommitdiff
path: root/source3
diff options
context:
space:
mode:
Diffstat (limited to 'source3')
-rw-r--r--source3/smbd/conn_idle.c4
-rw-r--r--source3/smbd/smb2_sesssetup.c2
2 files changed, 6 insertions, 0 deletions
diff --git a/source3/smbd/conn_idle.c b/source3/smbd/conn_idle.c
index dc213ea6be..f33bd8c89f 100644
--- a/source3/smbd/conn_idle.c
+++ b/source3/smbd/conn_idle.c
@@ -88,12 +88,16 @@ bool conn_idle_all(struct smbd_server_connection *sconn, time_t t)
bool conn_close_all(struct smbd_server_connection *sconn)
{
bool ret = false;
+
if (sconn->using_smb2) {
/* SMB2 */
struct smbd_smb2_session *sess;
+
for (sess = sconn->smb2.sessions.list; sess; sess = sess->next) {
struct smbd_smb2_tcon *tcon, *tc_next;
+ file_close_user(sconn, sess->vuid);
+
for (tcon = sess->tcons.list; tcon; tcon = tc_next) {
tc_next = tcon->next;
TALLOC_FREE(tcon);
diff --git a/source3/smbd/smb2_sesssetup.c b/source3/smbd/smb2_sesssetup.c
index 96e8d40cdd..9a750eea0d 100644
--- a/source3/smbd/smb2_sesssetup.c
+++ b/source3/smbd/smb2_sesssetup.c
@@ -122,6 +122,8 @@ static int smbd_smb2_session_destructor(struct smbd_smb2_session *session)
return 0;
}
+ file_close_user(session->sconn, session->vuid);
+
/* first free all tcons */
while (session->tcons.list) {
talloc_free(session->tcons.list);