diff options
author | nicm <nicm> | 2015-08-28 13:01:03 +0000 |
---|---|---|
committer | nicm <nicm> | 2015-08-28 13:01:03 +0000 |
commit | 57cc4d45d52e0af562172ac4044f311e1bb00c64 (patch) | |
tree | 6ea3979025bad294cae40808bc5e712b82d482a8 /session.c | |
parent | 675def039652e69d8fd5f229eff2128116e1d328 (diff) | |
download | rtmux-57cc4d45d52e0af562172ac4044f311e1bb00c64.tar.gz rtmux-57cc4d45d52e0af562172ac4044f311e1bb00c64.tar.bz2 rtmux-57cc4d45d52e0af562172ac4044f311e1bb00c64.zip |
Make session_update_activity more useful and use it in more places.
Diffstat (limited to 'session.c')
-rw-r--r-- | session.c | 21 |
1 files changed, 13 insertions, 8 deletions
@@ -112,10 +112,6 @@ session_create(const char *name, int argc, char **argv, const char *path, s->references = 1; s->flags = 0; - if (gettimeofday(&s->creation_time, NULL) != 0) - fatal("gettimeofday failed"); - session_update_activity(s); - s->cwd = dup(cwd); s->curw = NULL; @@ -133,6 +129,10 @@ session_create(const char *name, int argc, char **argv, const char *path, memcpy(s->tio, tio, sizeof *s->tio); } + if (gettimeofday(&s->creation_time, NULL) != 0) + fatal("gettimeofday failed"); + session_update_activity(s, &s->creation_time); + s->sx = sx; s->sy = sy; @@ -224,12 +224,17 @@ session_check_name(const char *name) return (*name != '\0' && name[strcspn(name, ":.")] == '\0'); } -/* Update session active time. */ +/* Update activity time. */ void -session_update_activity(struct session *s) +session_update_activity(struct session *s, struct timeval *from) { - if (gettimeofday(&s->activity_time, NULL) != 0) - fatal("gettimeofday"); + struct timeval *last = &s->last_activity_time; + + memcpy(last, &s->activity_time, sizeof *last); + if (from == NULL) + gettimeofday(&s->activity_time, NULL); + else + memcpy(&s->activity_time, from, sizeof s->activity_time); } /* Find the next usable session. */ |