diff options
author | cheloha@openbsd.org <cheloha@openbsd.org> | 2020-08-12 01:23:45 +0000 |
---|---|---|
committer | Damien Miller <djm@mindrot.org> | 2020-08-27 11:27:01 +1000 |
commit | 1196d7f49d4fbc90f37e550de3056561613b0960 (patch) | |
tree | 567e9c5b1a9e88bf91f772fbcf2f3043e91db8d0 | |
parent | d0a195c89e26766d3eb8f3e4e2a00ebc98b57795 (diff) |
upstream: ssh-keyscan(1): simplify conloop() with timercmp(3),
timersub(3); ok djm@
OpenBSD-Commit-ID: a102acb544f840d33ad73d40088adab4a687fa27
-rw-r--r-- | ssh-keyscan.c | 18 |
1 files changed, 5 insertions, 13 deletions
diff --git a/ssh-keyscan.c b/ssh-keyscan.c index a5e64407..ca190428 100644 --- a/ssh-keyscan.c +++ b/ssh-keyscan.c @@ -1,4 +1,4 @@ -/* $OpenBSD: ssh-keyscan.c,v 1.131 2019/12/15 19:47:10 djm Exp $ */ +/* $OpenBSD: ssh-keyscan.c,v 1.132 2020/08/12 01:23:45 cheloha Exp $ */ /* * Copyright 1995, 1996 by David Mazieres <dm@lcs.mit.edu>. * @@ -584,16 +584,9 @@ conloop(void) monotime_tv(&now); c = TAILQ_FIRST(&tq); - if (c && (c->c_tv.tv_sec > now.tv_sec || - (c->c_tv.tv_sec == now.tv_sec && c->c_tv.tv_usec > now.tv_usec))) { - seltime = c->c_tv; - seltime.tv_sec -= now.tv_sec; - seltime.tv_usec -= now.tv_usec; - if (seltime.tv_usec < 0) { - seltime.tv_usec += 1000000; - seltime.tv_sec--; - } - } else + if (c && timercmp(&c->c_tv, &now, >)) + timersub(&c->c_tv, &now, &seltime); + else timerclear(&seltime); r = xcalloc(read_wait_nfdset, sizeof(fd_mask)); @@ -616,8 +609,7 @@ conloop(void) free(e); c = TAILQ_FIRST(&tq); - while (c && (c->c_tv.tv_sec < now.tv_sec || - (c->c_tv.tv_sec == now.tv_sec && c->c_tv.tv_usec < now.tv_usec))) { + while (c && timercmp(&c->c_tv, &now, <)) { int s = c->c_fd; c = TAILQ_NEXT(c, c_link); |