- --argc; ++argv;
- while (argc > 0) {
- if (strcmp(argv[0], "-v") == 0) {
- ++vflag;
- ++argv, --argc;
- continue;
- }
- if (strcmp(argv[0], "-r") == 0) {
- ++rflag;
- ++argv, --argc;
- continue;
- }
- if (strcmp(argv[0], "-c") == 0) {
- ++cflag;
- ++argv, --argc;
- continue;
- }
- if (strcmp(argv[0], "-i") == 0 && argv[1] &&
- isdigit(argv[1][0])) {
- interval = atoi(argv[1]);
- if (interval < 0)
- usage();
- ++argv, --argc;
- ++argv, --argc;
- continue;
- }
- if (isdigit(argv[0][0])) {
- unit = atoi(argv[0]);
- if (unit < 0)
- usage();
- ++argv, --argc;
- continue;
+ fprintf(stderr, "Usage: %s [-a|-d] [-v|-r|-z] [-c count] [-w wait] [interface]\n",
+ progname);
+ exit(1);
+}
+
+/*
+ * Called if an interval expires before intpr has completed a loop.
+ * Sets a flag to not wait for the alarm.
+ */
+static void
+catchalarm(int arg)
+{
+ signalled = 1;
+}
+
+
+#ifndef STREAMS
+static void
+get_ppp_stats(struct ppp_stats *curp)
+{
+ struct ifreq req;
+
+ memset (&req, 0, sizeof (req));
+
+ req.ifr_data = (caddr_t) curp;
+
+ 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)
+ fprintf(stderr, "kernel support missing\n");
+ else
+ perror("couldn't get PPP statistics");
+ exit(1);
+ }
+}
+
+static void
+get_ppp_cstats(struct ppp_comp_stats *csp)
+{
+ struct ifreq req;
+ struct ppp_comp_stats stats;
+
+ memset (&req, 0, sizeof (req));
+
+ req.ifr_data = (caddr_t) &stats;
+
+ strncpy(req.ifr_name, interface, IFNAMSIZ);
+ req.ifr_name[IFNAMSIZ - 1] = 0;
+ if (ioctl(s, SIOCGPPPCSTATS, &req) < 0) {
+ fprintf(stderr, "%s: ", progname);
+ if (errno == ENOTTY) {
+ fprintf(stderr, "no kernel compression support\n");
+ if (zflag)
+ exit(1);
+ rflag = 0;
+ } else {
+ perror("couldn't get PPP compression stats");
+ exit(1);