* 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 <stdio.h>
#include <sys/ioctl.h>
#ifndef STREAMS
+#if defined(__linux__) && defined(__powerpc__) \
+ && (__GLIBC__ == 2 && __GLIBC_MINOR__ == 0)
+/* kludge alert! */
+#undef __GLIBC__
+#endif
#include <sys/socket.h> /* *BSD, Linux, NeXT, Ultrix etc. */
-#ifndef _linux_
+#ifndef __linux__
#include <net/if.h>
#include <net/ppp_defs.h>
#include <net/if_ppp.h>
#endif
#include <linux/ppp_defs.h>
#include <linux/if_ppp.h>
-#endif /* _linux_ */
+#endif /* __linux__ */
#else /* STREAMS */
#include <sys/stropts.h> /* SVR4, Solaris 2, SunOS 4, OSF/1, etc. */
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;
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 *));
memset (&req, 0, sizeof (req));
-#ifdef _linux_
+#ifdef __linux__
req.stats_ptr = (caddr_t) &req.stats;
#undef ifr_name
#define ifr_name ifr__name
memset (&creq, 0, sizeof (creq));
-#ifdef _linux_
+#ifdef __linux__
creq.stats_ptr = (caddr_t) &creq.stats;
#undef ifr_name
#define ifr_name ifr__name
}
}
-#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;
{
int c;
#ifdef STREAMS
+ int unit;
char *dev;
#endif
- interface = "ppp0";
+ interface = PPP_DRV_NAME "0";
if ((progname = strrchr(argv[0], '/')) == NULL)
progname = argv[0];
else
if (argc > 0)
interface = argv[0];
- if (sscanf(interface, "ppp%d", &unit) != 1) {
- fprintf(stderr, "%s: invalid interface '%s' specified\n",
- progname, interface);
- }
-
#ifndef STREAMS
{
struct ifreq ifr;
exit(1);
}
-#ifdef _linux_
+#ifdef __linux__
#undef ifr_name
#define ifr_name ifr_ifrn.ifrn_name
#endif
}
#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
- dev = "/dev/ppp";
+ dev = "/dev/" PPP_DRV_NAME;
#endif
if ((s = open(dev, O_RDONLY)) < 0) {
fprintf(stderr, "%s: couldn't open ", progname);