diff options
author | Jeremy Allison <jra@samba.org> | 2000-04-28 21:09:26 +0000 |
---|---|---|
committer | Jeremy Allison <jra@samba.org> | 2000-04-28 21:09:26 +0000 |
commit | 46d66938e7e683586746b18583ce1670f0ad3544 (patch) | |
tree | 54304dfe0f618b665b406852f9ee6d6e3e5ce5c5 /source3/smbd | |
parent | 9a5eb068ab32418e793d482db1f078f147f9ee08 (diff) | |
download | samba-46d66938e7e683586746b18583ce1670f0ad3544.tar.gz samba-46d66938e7e683586746b18583ce1670f0ad3544.tar.bz2 samba-46d66938e7e683586746b18583ce1670f0ad3544.zip |
Moved deletion of vfs handle into smbd/conn.c as it was being done too
soon in smbd/service.c (file operations were being done after the
handle was closed).
It looks cleaner in smbd/conn.c as it is part of the closing of a conn
struct anyway.
Jeremy.
(This used to be commit 858eb53dc510d1b27c4f91045fa932a3ef546754)
Diffstat (limited to 'source3/smbd')
-rw-r--r-- | source3/smbd/conn.c | 15 | ||||
-rw-r--r-- | source3/smbd/service.c | 16 |
2 files changed, 15 insertions, 16 deletions
diff --git a/source3/smbd/conn.c b/source3/smbd/conn.c index 83289b2184..1dc4ac9e7d 100644 --- a/source3/smbd/conn.c +++ b/source3/smbd/conn.c @@ -164,6 +164,21 @@ free a conn structure ****************************************************************************/ void conn_free(connection_struct *conn) { + /* Close dlopen() handle */ + + if (conn->vfs_conn->dl_handle != NULL) { + dlclose(conn->vfs_conn->dl_handle); /* should we check return val? */ + } + + /* Free vfs_connection_struct */ + + if (conn->vfs_conn != NULL) { + if (conn->vfs_conn->groups != NULL) { + free(conn->vfs_conn->groups); + } + free(conn->vfs_conn); + } + DLIST_REMOVE(Connections, conn); if (conn->ngroups && conn->groups) { diff --git a/source3/smbd/service.c b/source3/smbd/service.c index 8d04ce36e1..8e04f7e989 100644 --- a/source3/smbd/service.c +++ b/source3/smbd/service.c @@ -654,21 +654,6 @@ void close_cnum(connection_struct *conn, uint16 vuid) } - /* Close dlopen() handle */ - - if (conn->vfs_conn->dl_handle != NULL) { - dlclose(conn->vfs_conn->dl_handle); /* should we check return val? */ - } - - /* Free vfs_connection_struct */ - - if (conn->vfs_conn != NULL) { - if (conn->vfs_conn->groups != NULL) { - free(conn->vfs_conn->groups); - } - free(conn->vfs_conn); - } - yield_connection(conn, lp_servicename(SNUM(conn)), lp_max_connections(SNUM(conn))); @@ -697,6 +682,5 @@ void close_cnum(connection_struct *conn, uint16 vuid) standard_sub_conn(conn,cmd); smbrun(cmd,NULL,False); } - conn_free(conn); } |