diff options
author | Stefan Metzmacher <metze@samba.org> | 2005-01-13 18:49:10 +0000 |
---|---|---|
committer | Gerald (Jerry) Carter <jerry@samba.org> | 2007-10-10 13:08:48 -0500 |
commit | 592fce7fb149ca5e82b14d9c8f13a4da1babe2b7 (patch) | |
tree | 6f5dba2cceef394c88ed052dab86dd355c21ec01 /source4/smb_server/conn.c | |
parent | ada17c6794da2988fea7e800c60ca7e83d23eb7e (diff) | |
download | samba-592fce7fb149ca5e82b14d9c8f13a4da1babe2b7.tar.gz samba-592fce7fb149ca5e82b14d9c8f13a4da1babe2b7.tar.bz2 samba-592fce7fb149ca5e82b14d9c8f13a4da1babe2b7.zip |
r4726: - use the name tcon and tid instead of conn and cnum
- make use of talloc destructors
metze
(This used to be commit 8308da6ce4a95f8c10e22949ef00e9e64f2dbb85)
Diffstat (limited to 'source4/smb_server/conn.c')
-rw-r--r-- | source4/smb_server/conn.c | 47 |
1 files changed, 17 insertions, 30 deletions
diff --git a/source4/smb_server/conn.c b/source4/smb_server/conn.c index a4bf2716fe..c70ed95915 100644 --- a/source4/smb_server/conn.c +++ b/source4/smb_server/conn.c @@ -28,7 +28,7 @@ /**************************************************************************** init the tcon structures ****************************************************************************/ -void conn_init(struct smbsrv_connection *smb_conn) +void smbsrv_tcon_init(struct smbsrv_connection *smb_conn) { smb_conn->tree.idtree_tid = idr_init(smb_conn); } @@ -36,18 +36,27 @@ void conn_init(struct smbsrv_connection *smb_conn) /**************************************************************************** find a tcon given a cnum ****************************************************************************/ -struct smbsrv_tcon *conn_find(struct smbsrv_connection *smb_conn, uint_t cnum) +struct smbsrv_tcon *smbsrv_tcon_find(struct smbsrv_connection *smb_conn, uint_t tid) { - return idr_find(smb_conn->tree.idtree_tid, cnum); + return idr_find(smb_conn->tree.idtree_tid, tid); } /* destroy a connection structure */ -static int conn_destructor(void *ptr) +static int smbsrv_tcon_destructor(void *ptr) { struct smbsrv_tcon *tcon = ptr; - idr_remove(tcon->smb_conn->tree.idtree_tid, tcon->cnum); + + + DEBUG(3,("%s closed connection to service %s\n", + socket_get_peer_addr(tcon->smb_conn->connection->socket, tcon), + lp_servicename(SNUM(tcon)))); + + /* tell the ntvfs backend that we are disconnecting */ + ntvfs_disconnect(tcon); + + idr_remove(tcon->smb_conn->tree.idtree_tid, tcon->tid); DLIST_REMOVE(tcon->smb_conn->tree.tcons, tcon); return 0; } @@ -55,7 +64,7 @@ static int conn_destructor(void *ptr) /* find first available connection slot */ -struct smbsrv_tcon *conn_new(struct smbsrv_connection *smb_conn) +struct smbsrv_tcon *smbsrv_tcon_new(struct smbsrv_connection *smb_conn) { struct smbsrv_tcon *tcon; int i; @@ -69,34 +78,12 @@ struct smbsrv_tcon *conn_new(struct smbsrv_connection *smb_conn) return NULL; } - tcon->cnum = i; + tcon->tid = i; tcon->smb_conn = smb_conn; - talloc_set_destructor(tcon, conn_destructor); + talloc_set_destructor(tcon, smbsrv_tcon_destructor); DLIST_ADD(smb_conn->tree.tcons, tcon); return tcon; } - -/**************************************************************************** -close all tcon structures -****************************************************************************/ -void conn_close_all(struct smbsrv_connection *smb_conn) -{ - struct smbsrv_tcon *tcon, *next; - for (tcon=smb_conn->tree.tcons;tcon;tcon=next) { - next=tcon->next; - close_cnum(tcon); - } -} - - -/**************************************************************************** - Free a tcon structure. -****************************************************************************/ -void conn_free(struct smbsrv_connection *smb_conn, struct smbsrv_tcon *tcon) -{ - talloc_free(tcon); -} - |