X-Git-Url: https://git.ozlabs.org/?a=blobdiff_plain;f=pppstats%2Fpppstats.c;h=36e1ed60dd6c7f42af3003f52496f36cdf786ee2;hb=8ef130a49773ca93ddedf3bbd254e601c7d157b1;hp=2149f2567a4665d1b8061b82f4eeba861a0e7f11;hpb=e68a45a81a5ea2466b1bd5dfbb7a392ffc163ecf;p=ppp.git diff --git a/pppstats/pppstats.c b/pppstats/pppstats.c index 2149f25..36e1ed6 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.22 1998/03/31 23:48:03 paulus Exp $"; #endif #include @@ -47,15 +47,28 @@ 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 +/* Linux */ +#if __GLIBC__ >= 2 +#include +#else +#include +#endif +#include +#include +#include +#endif /* _linux_ */ #else /* STREAMS */ #include /* SVR4, Solaris 2, SunOS 4, OSF/1, etc. */ +#include #include #endif /* STREAMS */ @@ -71,7 +84,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 +109,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 +118,7 @@ catchalarm(arg) #ifndef STREAMS -void +static void get_ppp_stats(curp) struct ppp_stats *curp; { @@ -118,7 +144,7 @@ get_ppp_stats(curp) *curp = req.stats; } -void +static void get_ppp_cstats(csp) struct ppp_comp_stats *csp; { @@ -184,7 +210,7 @@ strioctl(fd, cmd, ptr, ilen, olen) return 0; } -void +static void get_ppp_stats(curp) struct ppp_stats *curp; { @@ -198,7 +224,7 @@ get_ppp_stats(curp) } } -void +static void get_ppp_cstats(csp) struct ppp_comp_stats *csp; { @@ -233,7 +259,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 +369,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 +422,9 @@ main(argc, argv) char *argv[]; { int c; +#ifdef STREAMS + char *dev; +#endif interface = "ppp0"; if ((progname = strrchr(argv[0], '/')) == NULL) @@ -467,6 +495,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 +509,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) {