diff --git a/misc/ifstat.c b/misc/ifstat.c index ac5c29c8..694d9839 100644 --- a/misc/ifstat.c +++ b/misc/ifstat.c @@ -589,7 +589,7 @@ static void server_loop(int fd) for (;;) { int status; - int tdiff; + time_t tdiff; struct timeval now; gettimeofday(&now, NULL); @@ -600,7 +600,7 @@ static void server_loop(int fd) tdiff = 0; } - if (poll(&p, 1, tdiff + scan_interval) > 0 + if (poll(&p, 1, scan_interval - tdiff) > 0 && (p.revents&POLLIN)) { int clnt = accept(fd, NULL, NULL); if (clnt >= 0) { @@ -613,11 +613,8 @@ static void server_loop(int fd) close(clnt); } else { FILE *fp = fdopen(clnt, "w"); - if (fp) { - if (tdiff > 0) - update_db(tdiff); + if (fp) dump_raw_db(fp, 0); - } exit(0); } } diff --git a/misc/nstat.c b/misc/nstat.c index 99705286..22b27eba 100644 --- a/misc/nstat.c +++ b/misc/nstat.c @@ -433,7 +433,7 @@ static void server_loop(int fd) for (;;) { int status; - int tdiff; + time_t tdiff; struct timeval now; gettimeofday(&now, NULL); tdiff = T_DIFF(now, snaptime); @@ -442,7 +442,7 @@ static void server_loop(int fd) snaptime = now; tdiff = 0; } - if (poll(&p, 1, tdiff + scan_interval) > 0 + if (poll(&p, 1, scan_interval - tdiff) > 0 && (p.revents&POLLIN)) { int clnt = accept(fd, NULL, NULL); if (clnt >= 0) { @@ -455,11 +455,8 @@ static void server_loop(int fd) close(clnt); } else { FILE *fp = fdopen(clnt, "w"); - if (fp) { - if (tdiff > 0) - update_db(tdiff); + if (fp) dump_kern_db(fp, 0); - } exit(0); } }