diff options
Diffstat (limited to 'source4/smb_server/tcon.c')
-rw-r--r-- | source4/smb_server/tcon.c | 16 |
1 files changed, 11 insertions, 5 deletions
diff --git a/source4/smb_server/tcon.c b/source4/smb_server/tcon.c index 95e42d6537..8b100d11ce 100644 --- a/source4/smb_server/tcon.c +++ b/source4/smb_server/tcon.c @@ -58,7 +58,8 @@ NTSTATUS smbsrv_smb2_init_tcons(struct smbsrv_session *smb_sess) /**************************************************************************** find a tcon given a tid for SMB ****************************************************************************/ -static struct smbsrv_tcon *smbsrv_tcon_find(struct smbsrv_tcons_context *tcons_ctx, uint32_t tid) +static struct smbsrv_tcon *smbsrv_tcon_find(struct smbsrv_tcons_context *tcons_ctx, + uint32_t tid, struct timeval request_time) { void *p; struct smbsrv_tcon *tcon; @@ -71,19 +72,24 @@ static struct smbsrv_tcon *smbsrv_tcon_find(struct smbsrv_tcons_context *tcons_c if (!p) return NULL; tcon = talloc_get_type(p, struct smbsrv_tcon); + if (!tcon) return NULL; + + tcon->statistics.last_request_time = request_time; return tcon; } -struct smbsrv_tcon *smbsrv_smb_tcon_find(struct smbsrv_connection *smb_conn, uint32_t tid) +struct smbsrv_tcon *smbsrv_smb_tcon_find(struct smbsrv_connection *smb_conn, + uint32_t tid, struct timeval request_time) { - return smbsrv_tcon_find(&smb_conn->smb_tcons, tid); + return smbsrv_tcon_find(&smb_conn->smb_tcons, tid, request_time); } -struct smbsrv_tcon *smbsrv_smb2_tcon_find(struct smbsrv_session *smb_sess, uint32_t tid) +struct smbsrv_tcon *smbsrv_smb2_tcon_find(struct smbsrv_session *smb_sess, + uint32_t tid, struct timeval request_time) { if (!smb_sess) return NULL; - return smbsrv_tcon_find(&smb_sess->smb2_tcons, tid); + return smbsrv_tcon_find(&smb_sess->smb2_tcons, tid, request_time); } /* |