diff options
author | Stefan Metzmacher <metze@samba.org> | 2012-03-12 18:04:01 +0100 |
---|---|---|
committer | Stefan Metzmacher <metze@samba.org> | 2012-03-15 21:56:09 +0100 |
commit | 148ca9e05f67a0a4fb1d583f7bec53190dea91ab (patch) | |
tree | 66ad50f08b1b307fb38644dfc83e060b40080416 /source3 | |
parent | 79a1baec86312d02b9aa67d364eedb80bb13480d (diff) | |
download | samba-148ca9e05f67a0a4fb1d583f7bec53190dea91ab.tar.gz samba-148ca9e05f67a0a4fb1d583f7bec53190dea91ab.tar.bz2 samba-148ca9e05f67a0a4fb1d583f7bec53190dea91ab.zip |
s3:smbd: call file_close_user() before removing tree connects in conn_close_all()
This will help later if we have to handle a SMB2TreeDisconnect different
compared to a SMB2SessionLogoff and a TCPDisconnect.
metze
Autobuild-User: Stefan Metzmacher <metze@samba.org>
Autobuild-Date: Thu Mar 15 21:56:09 CET 2012 on sn-devel-104
Diffstat (limited to 'source3')
-rw-r--r-- | source3/smbd/conn_idle.c | 4 | ||||
-rw-r--r-- | source3/smbd/smb2_sesssetup.c | 2 |
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); |