X-Git-Url: http://git.ozlabs.org/?p=ppp.git;a=blobdiff_plain;f=pppstats%2Fpppstats.c;h=6367988eb96bf03c588b6228ee0c0fdf115f0fbb;hp=033a35b0dd64605e27b8128ac9d0825a03892ba6;hb=fd25394d146bb83043189608d30dd0eeb983186d;hpb=3fbc219d75acba054c5c74dde080b5ddaf1b1e7e diff --git a/pppstats/pppstats.c b/pppstats/pppstats.c index 033a35b..6367988 100644 --- a/pppstats/pppstats.c +++ b/pppstats/pppstats.c @@ -31,8 +31,12 @@ * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE. */ +#ifndef __STDC__ +#define const +#endif + #ifndef lint -static char rcsid[] = "$Id: pppstats.c,v 1.23 1998/07/07 04:23:04 paulus Exp $"; +static const char rcsid[] = "$Id: pppstats.c,v 1.29 2002/10/27 12:56:26 fcusack Exp $"; #endif #include @@ -49,8 +53,13 @@ static char rcsid[] = "$Id: pppstats.c,v 1.23 1998/07/07 04:23:04 paulus Exp $"; #include #ifndef STREAMS +#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 @@ -65,7 +74,7 @@ static char rcsid[] = "$Id: pppstats.c,v 1.23 1998/07/07 04:23:04 paulus Exp $"; #endif #include #include -#endif /* _linux_ */ +#endif /* __linux__ */ #else /* STREAMS */ #include /* SVR4, Solaris 2, SunOS 4, OSF/1, etc. */ @@ -90,6 +99,14 @@ extern int optind; extern char *optarg; #endif +/* + * If PPP_DRV_NAME is not defined, use the legacy "ppp" as the + * device name. + */ +#if !defined(PPP_DRV_NAME) +#define PPP_DRV_NAME "ppp" +#endif /* !defined(PPP_DRV_NAME) */ + static void usage __P((void)); static void catchalarm __P((int)); static void get_ppp_stats __P((struct ppp_stats *)); @@ -127,7 +144,7 @@ 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 @@ -153,7 +170,7 @@ 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 @@ -173,7 +190,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; @@ -435,7 +452,7 @@ main(argc, argv) char *dev; #endif - interface = "ppp0"; + interface = PPP_DRV_NAME "0"; if ((progname = strrchr(argv[0], '/')) == NULL) progname = argv[0]; else @@ -489,7 +506,7 @@ main(argc, argv) if (argc > 0) interface = argv[0]; - if (sscanf(interface, "ppp%d", &unit) != 1) { + if (sscanf(interface, PPP_DRV_NAME "%d", &unit) != 1) { fprintf(stderr, "%s: invalid interface '%s' specified\n", progname, interface); } @@ -505,7 +522,7 @@ main(argc, argv) exit(1); } -#ifdef _linux_ +#ifdef __linux__ #undef ifr_name #define ifr_name ifr_ifrn.ifrn_name #endif @@ -521,7 +538,7 @@ main(argc, argv) #ifdef __osf__ dev = "/dev/streams/ppp"; #else - dev = "/dev/ppp"; + dev = "/dev/" PPP_DRV_NAME; #endif if ((s = open(dev, O_RDONLY)) < 0) { fprintf(stderr, "%s: couldn't open ", progname);