X-Git-Url: https://git.ozlabs.org/?a=blobdiff_plain;f=pppstats%2Fpppstats.c;h=cbea00b6d71268a1838ffd11428618c217a19cdc;hb=92c5612fdb77e83e49c524ae46110c129e13429e;hp=6367988eb96bf03c588b6228ee0c0fdf115f0fbb;hpb=fd25394d146bb83043189608d30dd0eeb983186d;p=ppp.git diff --git a/pppstats/pppstats.c b/pppstats/pppstats.c index 6367988..cbea00b 100644 --- a/pppstats/pppstats.c +++ b/pppstats/pppstats.c @@ -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; @@ -107,16 +106,16 @@ extern char *optarg; #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 *)); -static void get_ppp_cstats __P((struct ppp_comp_stats *)); -static void intpr __P((void)); +static void usage(void); +static void catchalarm(int); +static void get_ppp_stats(struct ppp_stats *); +static void get_ppp_cstats(struct ppp_comp_stats *); +static void intpr(void); -int main __P((int, char *argv[])); +int main(int, char *argv[]); static void -usage() +usage(void) { fprintf(stderr, "Usage: %s [-a|-d] [-v|-r|-z] [-c count] [-w wait] [interface]\n", progname); @@ -128,8 +127,7 @@ usage() * Sets a flag to not wait for the alarm. */ static void -catchalarm(arg) - int arg; +catchalarm(int arg) { signalled = 1; } @@ -137,8 +135,7 @@ catchalarm(arg) #ifndef STREAMS static void -get_ppp_stats(curp) - struct ppp_stats *curp; +get_ppp_stats(struct ppp_stats *curp) { struct ifpppstatsreq req; @@ -150,7 +147,8 @@ get_ppp_stats(curp) #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) @@ -163,8 +161,7 @@ get_ppp_stats(curp) } static void -get_ppp_cstats(csp) - struct ppp_comp_stats *csp; +get_ppp_cstats(struct ppp_comp_stats *csp) { struct ifpppcstatsreq creq; @@ -176,7 +173,8 @@ get_ppp_cstats(csp) #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) { @@ -218,9 +216,7 @@ get_ppp_cstats(csp) #else /* STREAMS */ int -strioctl(fd, cmd, ptr, ilen, olen) - int fd, cmd, ilen, olen; - char *ptr; +strioctl(int fd, int cmd, char *ptr, int ilen, int olen) { struct strioctl str; @@ -237,10 +233,9 @@ strioctl(fd, cmd, ptr, ilen, olen) } static void -get_ppp_stats(curp) - struct ppp_stats *curp; +get_ppp_stats(struct ppp_stats *curp) { - if (strioctl(s, PPPIO_GETSTAT, curp, 0, sizeof(*curp)) < 0) { + if (strioctl(s, PPPIO_GETSTAT, (char*) curp, 0, sizeof(*curp)) < 0) { fprintf(stderr, "%s: ", progname); if (errno == EINVAL) fprintf(stderr, "kernel support missing\n"); @@ -251,10 +246,9 @@ get_ppp_stats(curp) } static void -get_ppp_cstats(csp) - struct ppp_comp_stats *csp; +get_ppp_cstats(struct ppp_comp_stats *csp) { - if (strioctl(s, PPPIO_GETCSTAT, csp, 0, sizeof(*csp)) < 0) { + if (strioctl(s, PPPIO_GETCSTAT, (char*) csp, 0, sizeof(*csp)) < 0) { fprintf(stderr, "%s: ", progname); if (errno == ENOTTY) { fprintf(stderr, "no kernel compression support\n"); @@ -286,7 +280,7 @@ get_ppp_cstats(csp) * First line printed is cumulative. */ static void -intpr() +intpr(void) { register int line = 0; sigset_t oldmask, mask; @@ -443,12 +437,11 @@ intpr() } int -main(argc, argv) - int argc; - char *argv[]; +main(int argc, char *argv[]) { int c; #ifdef STREAMS + int unit; char *dev; #endif @@ -506,11 +499,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; @@ -526,7 +514,8 @@ main(argc, argv) #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 +524,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 @@ -545,7 +539,7 @@ main(argc, argv) perror(dev); exit(1); } - if (strioctl(s, PPPIO_ATTACH, &unit, sizeof(int), 0) < 0) { + if (strioctl(s, PPPIO_ATTACH, (char*) &unit, sizeof(int), 0) < 0) { fprintf(stderr, "%s: ppp%d is not available\n", progname, unit); exit(1); }