X-Git-Url: https://www.tinc-vpn.org/git/browse?a=blobdiff_plain;f=src%2Fevent.c;h=33d205a96f52c1e58b8e1f42150c11ad6633b0a6;hb=e8a60109fc91a42420ec626b63956771675f89b0;hp=84b18b3d3f5c31cde79acf75f49d48bf601850ed;hpb=5ec513ec0ffc735e30c559a03378659ba4cc4515;p=tinc diff --git a/src/event.c b/src/event.c index 84b18b3d..33d205a9 100644 --- a/src/event.c +++ b/src/event.c @@ -41,12 +41,15 @@ static int io_compare(const io_t *a, const io_t *b) { #ifndef HAVE_MINGW return a->fd - b->fd; #else + if(a->event < b->event) { return -1; } + if(a->event > b->event) { return 1; } + return 0; #endif } @@ -297,11 +300,9 @@ static struct timeval *get_time_remaining(struct timeval *diff) { timersub(&timeout->tv, &now, diff); if(diff->tv_sec < 0) { - timeout->cb(timeout->data); - - if(timercmp(&timeout->tv, &now, <)) { - timeout_del(timeout); - } + timeout_cb_t cb = timeout->cb; + timeout_del(timeout); + cb(timeout->data); } else { tv = diff; break;