/* $Id$ */ /* * Copyright (c) 2004 Dimitri Sokolyuk * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above * copyright notice and this permission notice appear in all copies. * * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. */ #include #include #include #include #include "main.h" int f_die = 0; int main(int argc, char **argv) { extern struct ifdata ifdata; struct ifdata last; struct ifdata diff; char *arg; if(argv[1] != NULL && argc == 2) arg = argv[1]; else usage(); signal(SIGINT, die); initscr(); curs_set(0); if_init(arg); if_stat(); last = ifdata; while(f_die == 0) { if_stat(); diff.ibytes = ifdata.ibytes - last.ibytes; diff.obytes = ifdata.obytes - last.obytes; diff.ipackets = ifdata.ipackets - last.ipackets; diff.opackets = ifdata.opackets - last.opackets; out(&diff); last = ifdata; usleep(1000000); /* 1s */ }; if_fini(); endwin(); exit(0); } int error(char *message) { if_fini(); endwin(); (void)fprintf(stderr, "%s: %s\n", __progname, message); exit(-1); } void die(int ignored) { (void) ignored; f_die = 1; } __dead void usage(void) { (void) fprintf(stderr, "usage: %s \n", __progname); exit(1); }