X-Git-Url: http://git.ozlabs.org/?a=blobdiff_plain;f=pppstats%2Fpppstats.c;h=843f7eaa6247e37b64bfe049b67df2f04edf839d;hb=388597eee99beac6e5b7430d24c377169f51bd57;hp=a0d3d7f5b6d00f6968ff5c5d9f99b25d5ba43a0d;hpb=2b0e16c59c832c53545eba4ad3b2857334c1b2ff;p=ppp.git diff --git a/pppstats/pppstats.c b/pppstats/pppstats.c index a0d3d7f..843f7ea 100644 --- a/pppstats/pppstats.c +++ b/pppstats/pppstats.c @@ -36,7 +36,7 @@ #endif #ifndef lint -static const char rcsid[] = "$Id: pppstats.c,v 1.28 2000/04/24 02:54:18 masputra Exp $"; +static const char rcsid[] = "$Id: pppstats.c,v 1.29 2002/10/27 12:56:26 fcusack Exp $"; #endif #include @@ -53,13 +53,13 @@ static const char rcsid[] = "$Id: pppstats.c,v 1.28 2000/04/24 02:54:18 masputra #include #ifndef STREAMS -#if defined(_linux_) && defined(__powerpc__) \ +#if defined(__linux__) && defined(__powerpc__) \ && (__GLIBC__ == 2 && __GLIBC_MINOR__ == 0) /* kludge alert! */ #undef __GLIBC__ #endif #include /* *BSD, Linux, NeXT, Ultrix etc. */ -#ifndef _linux_ +#ifndef __linux__ #include #include #include @@ -74,7 +74,7 @@ static const char rcsid[] = "$Id: pppstats.c,v 1.28 2000/04/24 02:54:18 masputra #endif #include #include -#endif /* _linux_ */ +#endif /* __linux__ */ #else /* STREAMS */ #include /* SVR4, Solaris 2, SunOS 4, OSF/1, etc. */ @@ -88,7 +88,6 @@ int aflag; /* print absolute values, not deltas */ int dflag; /* print data rates, not bytes */ int interval, count; int infinite; -int unit; int s; /* socket or /dev/ppp file descriptor */ int signalled; /* set if alarm goes off "early" */ char *progname; @@ -144,13 +143,14 @@ get_ppp_stats(curp) memset (&req, 0, sizeof (req)); -#ifdef _linux_ +#ifdef __linux__ req.stats_ptr = (caddr_t) &req.stats; #undef ifr_name #define ifr_name ifr__name #endif - strncpy(req.ifr_name, interface, sizeof(req.ifr_name)); + strncpy(req.ifr_name, interface, IFNAMSIZ); + req.ifr_name[IFNAMSIZ - 1] = 0; if (ioctl(s, SIOCGPPPSTATS, &req) < 0) { fprintf(stderr, "%s: ", progname); if (errno == ENOTTY) @@ -170,13 +170,14 @@ get_ppp_cstats(csp) memset (&creq, 0, sizeof (creq)); -#ifdef _linux_ +#ifdef __linux__ creq.stats_ptr = (caddr_t) &creq.stats; #undef ifr_name #define ifr_name ifr__name #endif - strncpy(creq.ifr_name, interface, sizeof(creq.ifr_name)); + strncpy(creq.ifr_name, interface, IFNAMSIZ); + creq.ifr_name[IFNAMSIZ - 1] = 0; if (ioctl(s, SIOCGPPPCSTATS, &creq) < 0) { fprintf(stderr, "%s: ", progname); if (errno == ENOTTY) { @@ -190,7 +191,7 @@ get_ppp_cstats(csp) } } -#ifdef _linux_ +#ifdef __linux__ if (creq.stats.c.bytes_out == 0) { creq.stats.c.bytes_out = creq.stats.c.comp_bytes + creq.stats.c.inc_bytes; creq.stats.c.in_count = creq.stats.c.unc_bytes; @@ -449,6 +450,7 @@ main(argc, argv) { int c; #ifdef STREAMS + int unit; char *dev; #endif @@ -506,11 +508,6 @@ main(argc, argv) if (argc > 0) interface = argv[0]; - if (sscanf(interface, PPP_DRV_NAME "%d", &unit) != 1) { - fprintf(stderr, "%s: invalid interface '%s' specified\n", - progname, interface); - } - #ifndef STREAMS { struct ifreq ifr; @@ -522,11 +519,12 @@ main(argc, argv) exit(1); } -#ifdef _linux_ +#ifdef __linux__ #undef ifr_name #define ifr_name ifr_ifrn.ifrn_name #endif - strncpy(ifr.ifr_name, interface, sizeof(ifr.ifr_name)); + strncpy(ifr.ifr_name, interface, IFNAMSIZ); + ifr.ifr_name[IFNAMSIZ - 1] = 0; if (ioctl(s, SIOCGIFFLAGS, (caddr_t)&ifr) < 0) { fprintf(stderr, "%s: nonexistent interface '%s' specified\n", progname, interface); @@ -535,6 +533,11 @@ main(argc, argv) } #else /* STREAMS */ + if (sscanf(interface, PPP_DRV_NAME "%d", &unit) != 1) { + fprintf(stderr, "%s: invalid interface '%s' specified\n", + progname, interface); + } + #ifdef __osf__ dev = "/dev/streams/ppp"; #else