X-Git-Url: https://git.ozlabs.org/?a=blobdiff_plain;f=pppstats%2Fpppstats.c;h=b8784c288b9a7ca81020ca12b5d694bf189fa04d;hb=a33610f4d2b55eb85e302954272ce238e8bc577d;hp=2149f2567a4665d1b8061b82f4eeba861a0e7f11;hpb=e68a45a81a5ea2466b1bd5dfbb7a392ffc163ecf;p=ppp.git diff --git a/pppstats/pppstats.c b/pppstats/pppstats.c index 2149f25..b8784c2 100644 --- a/pppstats/pppstats.c +++ b/pppstats/pppstats.c @@ -32,7 +32,7 @@ */ #ifndef lint -static char rcsid[] = "$Id: pppstats.c,v 1.14 1996/07/01 05:32:57 paulus Exp $"; +static char rcsid[] = "$Id: pppstats.c,v 1.20 1998/02/04 01:42:06 paulus Exp $"; #endif #include @@ -71,7 +71,20 @@ int signalled; /* set if alarm goes off "early" */ char *progname; char *interface; -void +#if defined(SUNOS4) || defined(ULTRIX) || defined(NeXT) +extern int optind; +extern char *optarg; +#endif + +static void usage __P((void)); +static void catchalarm __P((int)); +static void get_ppp_stats __P((struct ppp_stats *)); +static void get_ppp_cstats __P((struct ppp_comp_stats *)); +static void intpr __P((void)); + +int main __P((int, char *argv[])); + +static void usage() { fprintf(stderr, "Usage: %s [-a|-d] [-v|-r|-z] [-c count] [-w wait] [interface]\n", @@ -83,7 +96,7 @@ usage() * Called if an interval expires before intpr has completed a loop. * Sets a flag to not wait for the alarm. */ -void +static void catchalarm(arg) int arg; { @@ -92,7 +105,7 @@ catchalarm(arg) #ifndef STREAMS -void +static void get_ppp_stats(curp) struct ppp_stats *curp; { @@ -118,7 +131,7 @@ get_ppp_stats(curp) *curp = req.stats; } -void +static void get_ppp_cstats(csp) struct ppp_comp_stats *csp; { @@ -184,7 +197,7 @@ strioctl(fd, cmd, ptr, ilen, olen) return 0; } -void +static void get_ppp_stats(curp) struct ppp_stats *curp; { @@ -198,7 +211,7 @@ get_ppp_stats(curp) } } -void +static void get_ppp_cstats(csp) struct ppp_comp_stats *csp; { @@ -233,7 +246,7 @@ get_ppp_cstats(csp) * collected over that interval. Assumes that interval is non-zero. * First line printed is cumulative. */ -void +static void intpr() { register int line = 0; @@ -343,7 +356,6 @@ intpr() else printf(" | %8u", V(p.ppp_obytes)); printf(" %6u %6u", - V(p.ppp_obytes), V(p.ppp_opackets), V(vj.vjs_compressed)); if (!rflag) @@ -397,6 +409,9 @@ main(argc, argv) char *argv[]; { int c; +#ifdef STREAMS + char *dev; +#endif interface = "ppp0"; if ((progname = strrchr(argv[0], '/')) == NULL) @@ -467,6 +482,11 @@ main(argc, argv) perror("couldn't create IP socket"); exit(1); } + +#ifdef _linux_ +#undef ifr_name +#define ifr_name ifr_ifrn.ifrn_name +#endif strncpy(ifr.ifr_name, interface, sizeof(ifr.ifr_name)); if (ioctl(s, SIOCGIFFLAGS, (caddr_t)&ifr) < 0) { fprintf(stderr, "%s: nonexistent interface '%s' specified\n", @@ -476,9 +496,14 @@ main(argc, argv) } #else /* STREAMS */ - if ((s = open("/dev/ppp", O_RDONLY)) < 0) { - fprintf(stderr, "%s: ", progname); - perror("couldn't open /dev/ppp"); +#ifdef __osf__ + dev = "/dev/streams/ppp"; +#else + dev = "/dev/ppp"; +#endif + if ((s = open(dev, O_RDONLY)) < 0) { + fprintf(stderr, "%s: couldn't open ", progname); + perror(dev); exit(1); } if (strioctl(s, PPPIO_ATTACH, &unit, sizeof(int), 0) < 0) {