summaryrefslogtreecommitdiff
path: root/source3/smbd/conn_idle.c
diff options
context:
space:
mode:
authorStefan Metzmacher <metze@samba.org>2012-03-27 11:09:05 +0200
committerStefan Metzmacher <metze@samba.org>2012-06-25 20:55:06 +0200
commit463b308f16733b5a0bd896c46347d39064cee170 (patch)
tree7880a96961d639c6de21f3225e6f56fade312a0c /source3/smbd/conn_idle.c
parentef408e5068255449eda9b4fc5c483713e91e560d (diff)
downloadsamba-463b308f16733b5a0bd896c46347d39064cee170.tar.gz
samba-463b308f16733b5a0bd896c46347d39064cee170.tar.bz2
samba-463b308f16733b5a0bd896c46347d39064cee170.zip
s3:smbd: make use of smbXsrv_tcon and smbXsrv_session for smb2
The removes the protocol specific smbd_smb2_session and smbd_smb2_tcon. Pair-Programmed-With: Michael Adam <obnox@samba.org> metze
Diffstat (limited to 'source3/smbd/conn_idle.c')
-rw-r--r--source3/smbd/conn_idle.c41
1 files changed, 14 insertions, 27 deletions
diff --git a/source3/smbd/conn_idle.c b/source3/smbd/conn_idle.c
index 4dfa4097c3..22bc20ef1f 100644
--- a/source3/smbd/conn_idle.c
+++ b/source3/smbd/conn_idle.c
@@ -88,19 +88,7 @@ bool conn_idle_all(struct smbd_server_connection *sconn, time_t t)
void conn_close_all(struct smbd_server_connection *sconn)
{
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);
- }
- }
+ smbXsrv_session_logoff_all(sconn->conn);
} else {
/* SMB1 */
connection_struct *conn, *next;
@@ -131,21 +119,20 @@ void conn_force_tdis(struct smbd_server_connection *sconn, const char *sharename
}
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;
-
- for (tcon = sess->tcons.list; tcon; tcon = tc_next) {
- tc_next = tcon->next;
- if (tcon->compat_conn &&
- strequal(lp_servicename(SNUM(tcon->compat_conn)),
- sharename)) {
- DEBUG(1,("Forcing close of share %s cnum=%d\n",
- sharename, tcon->compat_conn->cnum));
- TALLOC_FREE(tcon);
- }
+ for (conn=sconn->connections;conn;conn=next) {
+ struct smbXsrv_tcon *tcon;
+
+ next = conn->next;
+ tcon = conn->tcon;
+
+ if (!strequal(lp_servicename(SNUM(conn)), sharename)) {
+ continue;
}
+
+ DEBUG(1,("Forcing close of share %s cnum=%d\n",
+ sharename, conn->cnum));
+ smbXsrv_tcon_disconnect(tcon, conn->vuid);
+ TALLOC_FREE(tcon);
}
} else {
/* SMB1 */