diff options
author | Jeremy Allison <jra@samba.org> | 2006-04-15 04:07:10 +0000 |
---|---|---|
committer | Gerald (Jerry) Carter <jerry@samba.org> | 2007-10-10 11:16:22 -0500 |
commit | 8272a5ab0605fcf95527143c4f909aa1008e5b94 (patch) | |
tree | 35cc5a4d18f42122598b87afd5fe9e795808dae7 /source/smbd/conn.c | |
parent | 77fb19c45dcb07f5b675831979fbd74a99e30638 (diff) | |
download | samba-8272a5ab0605fcf95527143c4f909aa1008e5b94.tar.gz samba-8272a5ab0605fcf95527143c4f909aa1008e5b94.tar.xz samba-8272a5ab0605fcf95527143c4f909aa1008e5b94.zip |
r15088: Remove all time() and gettimeofday() calls out of the mainline
packet processing code. Only do these when needed (ie. in the
idle timeout code). We drop an unneccessary global here too.
Jeremy.
Diffstat (limited to 'source/smbd/conn.c')
-rw-r--r-- | source/smbd/conn.c | 16 |
1 files changed, 12 insertions, 4 deletions
diff --git a/source/smbd/conn.c b/source/smbd/conn.c index b41467f02c7..5aa8901d597 100644 --- a/source/smbd/conn.c +++ b/source/smbd/conn.c @@ -154,8 +154,9 @@ find_again: } /**************************************************************************** -close all conn structures + Close all conn structures. ****************************************************************************/ + void conn_close_all(void) { connection_struct *conn, *next; @@ -178,13 +179,20 @@ BOOL conn_idle_all(time_t t, int deadtime) for (conn=Connections;conn;conn=next) { next=conn->next; + + /* Update if connection wasn't idle. */ + if (conn->lastused != conn->lastused_count) { + conn->lastused = t; + } + /* close dirptrs on connections that are idle */ - if ((t-conn->lastused) > DPTR_IDLE_TIMEOUT) + if ((t-conn->lastused) > DPTR_IDLE_TIMEOUT) { dptr_idlecnum(conn); + } - if (conn->num_files_open > 0 || - (t-conn->lastused)<deadtime) + if (conn->num_files_open > 0 || (t-conn->lastused)<deadtime) { allidle = False; + } } /* |