#include "includes.h"
-extern struct timeval smb_last_time;
-
#undef DBGC_CLASS
#define DBGC_CLASS DBGC_AUTH
return True;
}
- lasttime = (time_t)smb_last_time.tv_sec;
+ lasttime = time(NULL);
utctime = gmtime(&lasttime);
/* find the corresponding byte and bit */
NT_USER_TOKEN *nt_user_token;
time_t lastused;
+ time_t lastused_count;
BOOL used;
int num_files_open;
unsigned int num_smb_operations; /* Count of smb operations on this tree. */
}
/****************************************************************************
-close all conn structures
+ Close all conn structures.
****************************************************************************/
+
void conn_close_all(void)
{
connection_struct *conn, *next;
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;
+ }
}
/*
static int32 level_II_oplocks_open = 0;
BOOL global_client_failed_oplock_break = False;
-extern struct timeval smb_last_time;
extern uint32 global_client_caps;
extern int smb_read_error;
static void wait_before_sending_break(void)
{
- struct timeval cur_tv;
- long wait_left = (long)lp_oplock_break_wait_time();
+ long wait_time = (long)lp_oplock_break_wait_time();
- if (wait_left == 0) {
- return;
- }
-
- GetTimeOfDay(&cur_tv);
-
- wait_left -= ((cur_tv.tv_sec - smb_last_time.tv_sec)*1000) +
- ((cur_tv.tv_usec - smb_last_time.tv_usec)/1000);
-
- if(wait_left > 0) {
- wait_left = MIN(wait_left, 1000);
- sys_usleep(wait_left * 1000);
+ if (wait_time) {
+ smb_msleep(wait_time);
}
}
extern struct auth_context *negprot_global_auth_context;
extern int smb_echo_count;
-struct timeval smb_last_time;
-
static char *InBuffer = NULL;
static char *OutBuffer = NULL;
static char *current_inbuf = NULL;
int outsize = 0;
int msg_type = CVAL(inbuf,0);
- GetTimeOfDay(&smb_last_time);
-
chain_size = 0;
file_chain_reset();
reset_chain_p();
#include "includes.h"
-extern struct timeval smb_last_time;
extern userdom_struct current_user_info;
/****************************************************************************
return(False);
}
- conn->lastused = smb_last_time.tv_sec;
+ conn->lastused_count++;
snum = SNUM(conn);
safe_strcpy(conn->client_address, client_addr(),
sizeof(conn->client_address)-1);
conn->num_files_open = 0;
- conn->lastused = time(NULL);
+ conn->lastused = conn->lastused_count = time(NULL);
conn->service = snum;
conn->used = True;
conn->printer = (strncmp(dev,"LPT",3) == 0);