*/
#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.20 1998/02/04 01:42:06 paulus Exp $";
#endif
#include <stdio.h>
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",
* 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;
{
#ifndef STREAMS
-void
+static void
get_ppp_stats(curp)
struct ppp_stats *curp;
{
*curp = req.stats;
}
-void
+static void
get_ppp_cstats(csp)
struct ppp_comp_stats *csp;
{
return 0;
}
-void
+static void
get_ppp_stats(curp)
struct ppp_stats *curp;
{
}
}
-void
+static void
get_ppp_cstats(csp)
struct ppp_comp_stats *csp;
{
* collected over that interval. Assumes that interval is non-zero.
* First line printed is cumulative.
*/
-void
+static void
intpr()
{
register int line = 0;
else
printf(" | %8u", V(p.ppp_obytes));
printf(" %6u %6u",
- V(p.ppp_obytes),
V(p.ppp_opackets),
V(vj.vjs_compressed));
if (!rflag)
char *argv[];
{
int c;
+#ifdef STREAMS
+ char *dev;
+#endif
interface = "ppp0";
if ((progname = strrchr(argv[0], '/')) == NULL)
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",
}
#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) {