* See LICENSE file for copyright and license details.
*/
+/* Wishlist */
+/* TODO: Add IPv6 support. */
+/* TODO: Turn the global '-r' functionality into per-host config file option. */
+/* TODO: Add 'auto' keyword to 'start_condition', testing host on startup. */
+/* TODO: Double-check the network code when interrupted while receiving a packet. */
+
#include <stdio.h>
#include <stdlib.h>
#include <stdbool.h>
}
/*
- * Calculate difference between two timeval structs to within one second.
+ * Calculate difference (a-b) between two timeval structs.
*/
void
timeval_diff(struct timeval * a, const struct timeval * b)
{
- assert(a->tv_sec >= b->tv_sec);
+ if (a->tv_usec < b->tv_usec) {
+ a->tv_sec--;
+ a->tv_usec += 1000000;
+ }
+ a->tv_usec -= b->tv_usec;
a->tv_sec -= b->tv_sec;
}