X-Git-Url: http://git.ozlabs.org/?a=blobdiff_plain;f=pppstats%2Fpppstats.c;h=b98b6ec189be2778faa9698c2442541331853d13;hb=d787efe484e0c2555d8965ff0320713b0ea08e2b;hp=2149f2567a4665d1b8061b82f4eeba861a0e7f11;hpb=e68a45a81a5ea2466b1bd5dfbb7a392ffc163ecf;p=ppp.git diff --git a/pppstats/pppstats.c b/pppstats/pppstats.c index 2149f25..b98b6ec 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.21 1998/03/25 03:01:10 paulus Exp $"; #endif #include @@ -47,15 +47,22 @@ static char rcsid[] = "$Id: pppstats.c,v 1.14 1996/07/01 05:32:57 paulus Exp $"; #include #include #include -#include #ifndef STREAMS #include /* *BSD, Linux, NeXT, Ultrix etc. */ +#ifndef _linux_ #include +#include #include +#else +#include +#include +#include +#endif /* _linux_ */ #else /* STREAMS */ #include /* SVR4, Solaris 2, SunOS 4, OSF/1, etc. */ +#include #include #endif /* STREAMS */ @@ -71,7 +78,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 +103,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 +112,7 @@ catchalarm(arg) #ifndef STREAMS -void +static void get_ppp_stats(curp) struct ppp_stats *curp; { @@ -118,7 +138,7 @@ get_ppp_stats(curp) *curp = req.stats; } -void +static void get_ppp_cstats(csp) struct ppp_comp_stats *csp; { @@ -184,7 +204,7 @@ strioctl(fd, cmd, ptr, ilen, olen) return 0; } -void +static void get_ppp_stats(curp) struct ppp_stats *curp; { @@ -198,7 +218,7 @@ get_ppp_stats(curp) } } -void +static void get_ppp_cstats(csp) struct ppp_comp_stats *csp; { @@ -233,7 +253,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 +363,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 +416,9 @@ main(argc, argv) char *argv[]; { int c; +#ifdef STREAMS + char *dev; +#endif interface = "ppp0"; if ((progname = strrchr(argv[0], '/')) == NULL) @@ -467,6 +489,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 +503,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) {