From 8b886ae21e6d78c9b2070a561fbb2648fab48ad6 Mon Sep 17 00:00:00 2001 From: ume Date: Thu, 23 Oct 2003 17:36:29 +0000 Subject: - style - index() -> strchr() - stop use of MAXHOSTNAMELEN Obtained from: KAME --- usr.sbin/traceroute6/traceroute6.c | 276 ++++++++++++++++++------------------- 1 file changed, 131 insertions(+), 145 deletions(-) (limited to 'usr.sbin/traceroute6/traceroute6.c') diff --git a/usr.sbin/traceroute6/traceroute6.c b/usr.sbin/traceroute6/traceroute6.c index deab0ef..97b12d7 100644 --- a/usr.sbin/traceroute6/traceroute6.c +++ b/usr.sbin/traceroute6/traceroute6.c @@ -297,10 +297,6 @@ static const char rcsid[] = #define FD_ZERO(p) bzero((char *)(p), sizeof(*(p))) #endif -#define Fprintf (void)fprintf -#define Sprintf (void)sprintf -#define Printf (void)printf - #ifndef HAVE_GETIPNODEBYNAME #define getipnodebyname(x, y, z, u) gethostbyname2((x), (y)) #define freehostent(x) @@ -398,29 +394,29 @@ main(argc, argv) /* specify to tell receiving interface */ #ifdef IPV6_RECVPKTINFO if (setsockopt(rcvsock, IPPROTO_IPV6, IPV6_RECVPKTINFO, &on, - sizeof(on)) < 0) + sizeof(on)) < 0) err(1, "setsockopt(IPV6_RECVPKTINFO)"); #else /* old adv. API */ if (setsockopt(rcvsock, IPPROTO_IPV6, IPV6_PKTINFO, &on, - sizeof(on)) < 0) + sizeof(on)) < 0) err(1, "setsockopt(IPV6_PKTINFO)"); #endif /* specify to tell value of hoplimit field of received IP6 hdr */ #ifdef IPV6_RECVHOPLIMIT if (setsockopt(rcvsock, IPPROTO_IPV6, IPV6_RECVHOPLIMIT, &on, - sizeof(on)) < 0) + sizeof(on)) < 0) err(1, "setsockopt(IPV6_RECVHOPLIMIT)"); #else /* old adv. API */ if (setsockopt(rcvsock, IPPROTO_IPV6, IPV6_HOPLIMIT, &on, - sizeof(on)) < 0) + sizeof(on)) < 0) err(1, "setsockopt(IPV6_HOPLIMIT)"); #endif seq = 0; - + while ((ch = getopt(argc, argv, "df:g:lm:np:q:rs:w:v")) != -1) - switch(ch) { + switch (ch) { case 'd': options |= SO_DEBUG; break; @@ -428,12 +424,12 @@ main(argc, argv) ep = NULL; first_hop = strtoul(optarg, &ep, 0); if (!*argv || *ep) { - Fprintf(stderr, + fprintf(stderr, "traceroute6: invalid min hoplimit.\n"); exit(1); } if (first_hop > max_hops) { - Fprintf(stderr, + fprintf(stderr, "traceroute6: min hoplimit must be <= %d.\n", max_hops); exit(1); } @@ -441,7 +437,7 @@ main(argc, argv) case 'g': hp = getipnodebyname(optarg, AF_INET6, 0, &h_errno); if (hp == NULL) { - Fprintf(stderr, + fprintf(stderr, "traceroute6: unknown host %s\n", optarg); exit(1); } @@ -452,25 +448,25 @@ main(argc, argv) * intermediate nodes yet. */ if ((rth = inet6_rth_init((void *)rtbuf, - sizeof(rtbuf), - IPV6_RTHDR_TYPE_0, - 0)) == NULL) { - Fprintf(stderr, - "inet6_rth_init failed.\n"); + sizeof(rtbuf), IPV6_RTHDR_TYPE_0, + 0)) == NULL) { + fprintf(stderr, + "inet6_rth_init failed.\n"); exit(1); } } if (inet6_rth_add((void *)rth, - (struct in6_addr *)hp->h_addr)) { - Fprintf(stderr, - "inet6_rth_add failed for %s\n", - optarg); + (struct in6_addr *)hp->h_addr)) { + fprintf(stderr, + "inet6_rth_add failed for %s\n", + optarg); exit(1); } #else /* old advanced API */ if (cmsg == NULL) cmsg = inet6_rthdr_init(rtbuf, IPV6_RTHDR_TYPE_0); - inet6_rthdr_add(cmsg, (struct in6_addr *)hp->h_addr, IPV6_RTHDR_LOOSE); + inet6_rthdr_add(cmsg, (struct in6_addr *)hp->h_addr, + IPV6_RTHDR_LOOSE); #endif freehostent(hp); break; @@ -481,12 +477,12 @@ main(argc, argv) ep = NULL; max_hops = strtoul(optarg, &ep, 0); if (!*argv || *ep) { - Fprintf(stderr, + fprintf(stderr, "traceroute6: invalid max hoplimit.\n"); exit(1); } if (max_hops < first_hop) { - Fprintf(stderr, + fprintf(stderr, "traceroute6: max hoplimit must be >= %d.\n", first_hop); exit(1); } @@ -498,12 +494,12 @@ main(argc, argv) ep = NULL; port = strtoul(optarg, &ep, 0); if (!*argv || *ep) { - Fprintf(stderr, + fprintf(stderr, "traceroute6: port.\n"); exit(1); } if (port < 1) { - Fprintf(stderr, + fprintf(stderr, "traceroute6: port must be >0.\n"); exit(1); } @@ -512,12 +508,12 @@ main(argc, argv) ep = NULL; nprobes = strtoul(optarg, &ep, 0); if (!*argv || *ep) { - Fprintf(stderr, + fprintf(stderr, "traceroute6: invalid nprobes.\n"); exit(1); } if (nprobes < 1) { - Fprintf(stderr, + fprintf(stderr, "traceroute6: nprobes must be >0.\n"); exit(1); } @@ -539,12 +535,12 @@ main(argc, argv) ep = NULL; waittime = strtoul(optarg, &ep, 0); if (!*argv || *ep) { - Fprintf(stderr, + fprintf(stderr, "traceroute6: invalid wait time.\n"); exit(1); } if (waittime <= 1) { - Fprintf(stderr, + fprintf(stderr, "traceroute6: wait must be >1 sec.\n"); exit(1); } @@ -571,19 +567,19 @@ main(argc, argv) hints.ai_flags = AI_CANONNAME; error = getaddrinfo(*argv, NULL, &hints, &res); if (error) { - (void)fprintf(stderr, - "traceroute6: %s\n", gai_strerror(error)); + fprintf(stderr, + "traceroute6: %s\n", gai_strerror(error)); exit(1); } if (res->ai_addrlen != sizeof(Dst)) { - (void)fprintf(stderr, - "traceroute6: size of sockaddr mismatch\n"); + fprintf(stderr, + "traceroute6: size of sockaddr mismatch\n"); exit(1); } memcpy(&Dst, res->ai_addr, res->ai_addrlen); hostname = res->ai_canonname ? strdup(res->ai_canonname) : *argv; if (!hostname) { - (void)fprintf(stderr, "traceroute6: not enough core\n"); + fprintf(stderr, "traceroute6: not enough core\n"); exit(1); } @@ -591,13 +587,13 @@ main(argc, argv) ep = NULL; datalen = strtoul(*argv, &ep, 0); if (!*argv || *ep) { - Fprintf(stderr, + fprintf(stderr, "traceroute6: invalid packet length.\n"); exit(1); } } if (datalen < 0 || datalen >= MAXPACKET - sizeof(struct opacket)) { - Fprintf(stderr, + fprintf(stderr, "traceroute6: packet size must be 0 <= s < %ld.\n", (long)(MAXPACKET - sizeof(struct opacket))); exit(1); @@ -620,7 +616,7 @@ main(argc, argv) rcvcmsglen = CMSG_SPACE(sizeof(struct in6_pktinfo)) + CMSG_SPACE(sizeof(int)); if ((rcvcmsgbuf = malloc(rcvcmsglen)) == NULL) { - Fprintf(stderr, "traceroute6: malloc failed\n"); + fprintf(stderr, "traceroute6: malloc failed\n"); exit(1); } rcvmhdr.msg_control = (caddr_t) rcvcmsgbuf; @@ -628,10 +624,10 @@ main(argc, argv) if (options & SO_DEBUG) (void) setsockopt(rcvsock, SOL_SOCKET, SO_DEBUG, - (char *)&on, sizeof(on)); + (char *)&on, sizeof(on)); if (options & SO_DONTROUTE) (void) setsockopt(rcvsock, SOL_SOCKET, SO_DONTROUTE, - (char *)&on, sizeof(on)); + (char *)&on, sizeof(on)); #ifdef IPSEC #ifdef IPSEC_POLICY_IPSEC /* @@ -647,19 +643,19 @@ main(argc, argv) int level = IPSEC_LEVEL_NONE; (void)setsockopt(rcvsock, IPPROTO_IPV6, IPV6_ESP_TRANS_LEVEL, &level, - sizeof(level)); + sizeof(level)); (void)setsockopt(rcvsock, IPPROTO_IPV6, IPV6_ESP_NETWORK_LEVEL, &level, - sizeof(level)); + sizeof(level)); #ifdef IP_AUTH_TRANS_LEVEL (void)setsockopt(rcvsock, IPPROTO_IPV6, IPV6_AUTH_TRANS_LEVEL, &level, - sizeof(level)); + sizeof(level)); #else (void)setsockopt(rcvsock, IPPROTO_IPV6, IPV6_AUTH_LEVEL, &level, - sizeof(level)); + sizeof(level)); #endif #ifdef IP_AUTH_NETWORK_LEVEL (void)setsockopt(rcvsock, IPPROTO_IPV6, IPV6_AUTH_NETWORK_LEVEL, &level, - sizeof(level)); + sizeof(level)); #endif } #endif /*IPSEC_POLICY_IPSEC*/ @@ -674,24 +670,24 @@ main(argc, argv) } #ifdef SO_SNDBUF if (setsockopt(sndsock, SOL_SOCKET, SO_SNDBUF, (char *)&datalen, - sizeof(datalen)) < 0) { + sizeof(datalen)) < 0) { perror("setsockopt(SO_SNDBUF)"); exit(6); } #endif /* SO_SNDBUF */ if (options & SO_DEBUG) (void) setsockopt(sndsock, SOL_SOCKET, SO_DEBUG, - (char *)&on, sizeof(on)); + (char *)&on, sizeof(on)); if (options & SO_DONTROUTE) (void) setsockopt(sndsock, SOL_SOCKET, SO_DONTROUTE, - (char *)&on, sizeof(on)); + (char *)&on, sizeof(on)); #ifdef USE_RFC2292BIS if (rth) {/* XXX: there is no library to finalize the header... */ rth->ip6r_len = rth->ip6r_segleft * 2; if (setsockopt(sndsock, IPPROTO_IPV6, IPV6_RTHDR, - (void *)rth, (rth->ip6r_len + 1) << 3)) { - Fprintf(stderr, "setsockopt(IPV6_RTHDR): %s\n", - strerror(errno)); + (void *)rth, (rth->ip6r_len + 1) << 3)) { + fprintf(stderr, "setsockopt(IPV6_RTHDR): %s\n", + strerror(errno)); exit(1); } } @@ -699,9 +695,9 @@ main(argc, argv) if (cmsg != NULL) { inet6_rthdr_lasthop(cmsg, IPV6_RTHDR_LOOSE); if (setsockopt(sndsock, IPPROTO_IPV6, IPV6_PKTOPTIONS, - rtbuf, cmsg->cmsg_len) < 0) { - Fprintf(stderr, "setsockopt(IPV6_PKTOPTIONS): %s\n", - strerror(errno)); + rtbuf, cmsg->cmsg_len) < 0) { + fprintf(stderr, "setsockopt(IPV6_PKTOPTIONS): %s\n", + strerror(errno)); exit(1); } } @@ -721,19 +717,19 @@ main(argc, argv) int level = IPSEC_LEVEL_BYPASS; (void)setsockopt(sndsock, IPPROTO_IPV6, IPV6_ESP_TRANS_LEVEL, &level, - sizeof(level)); + sizeof(level)); (void)setsockopt(sndsock, IPPROTO_IPV6, IPV6_ESP_NETWORK_LEVEL, &level, - sizeof(level)); + sizeof(level)); #ifdef IP_AUTH_TRANS_LEVEL (void)setsockopt(sndsock, IPPROTO_IPV6, IPV6_AUTH_TRANS_LEVEL, &level, - sizeof(level)); + sizeof(level)); #else (void)setsockopt(sndsock, IPPROTO_IPV6, IPV6_AUTH_LEVEL, &level, - sizeof(level)); + sizeof(level)); #endif #ifdef IP_AUTH_NETWORK_LEVEL (void)setsockopt(sndsock, IPPROTO_IPV6, IPV6_AUTH_NETWORK_LEVEL, &level, - sizeof(level)); + sizeof(level)); #endif } #endif /*IPSEC_POLICY_IPSEC*/ @@ -753,12 +749,12 @@ main(argc, argv) hints.ai_flags = AI_NUMERICHOST; error = getaddrinfo(source, "0", &hints, &res); if (error) { - Printf("traceroute6: %s: %s\n", source, + printf("traceroute6: %s: %s\n", source, gai_strerror(error)); exit(1); } if (res->ai_addrlen > sizeof(Src)) { - Printf("traceroute6: %s: %s\n", source, + printf("traceroute6: %s: %s\n", source, gai_strerror(error)); exit(1); } @@ -772,7 +768,7 @@ main(argc, argv) Nxt.sin6_port = htons(DUMMY_PORT); if (cmsg != NULL) bcopy(inet6_rthdr_getaddr(cmsg, 1), &Nxt.sin6_addr, - sizeof(Nxt.sin6_addr)); + sizeof(Nxt.sin6_addr)); if ((dummy = socket(AF_INET6, SOCK_DGRAM, 0)) < 0) { perror("socket"); exit(1); @@ -788,18 +784,14 @@ main(argc, argv) } if (getnameinfo((struct sockaddr *)&Src, Src.sin6_len, src0, sizeof(src0), NULL, 0, NI_NUMERICHOST)) { - Fprintf(stderr, "getnameinfo failed for source\n"); + fprintf(stderr, "getnameinfo failed for source\n"); exit(1); } source = src0; close(dummy); } -#if 1 ident = (getpid() & 0xffff) | 0x8000; -#else - ident = 0; /*let the kernel pick one*/ -#endif Src.sin6_port = htons(ident); if (bind(sndsock, (struct sockaddr *)&Src, Src.sin6_len) < 0) { perror("bind"); @@ -807,7 +799,7 @@ main(argc, argv) } if (ident == 0) { - int len; + socklen_t len; len = sizeof(Src); if (getsockname(sndsock, (struct sockaddr *)&Src, &i) < 0) { @@ -823,17 +815,16 @@ main(argc, argv) if (getnameinfo((struct sockaddr *)&Dst, Dst.sin6_len, hbuf, sizeof(hbuf), NULL, 0, NI_NUMERICHOST)) strlcpy(hbuf, "(invalid)", sizeof(hbuf)); - Fprintf(stderr, "traceroute6"); - Fprintf(stderr, " to %s (%s)", hostname, hbuf); + fprintf(stderr, "traceroute6"); + fprintf(stderr, " to %s (%s)", hostname, hbuf); if (source) - Fprintf(stderr, " from %s", source); - Fprintf(stderr, - ", %d hops max, %d byte packets\n", - max_hops, datalen); + fprintf(stderr, " from %s", source); + fprintf(stderr, ", %d hops max, %d byte packets\n", + max_hops, datalen); (void) fflush(stderr); if (first_hop > 1) - Printf("Skipping %d intermediate hops\n", first_hop - 1); + printf("Skipping %d intermediate hops\n", first_hop - 1); /* * Main loop @@ -843,7 +834,7 @@ main(argc, argv) int got_there = 0; int unreachable = 0; - Printf("%2d ", hops); + printf("%2d ", hops); bzero(&lastaddr, sizeof(lastaddr)); for (probe = 0; probe < nprobes; ++probe) { int cc; @@ -856,32 +847,32 @@ main(argc, argv) (void) gettimeofday(&t2, &tz); if ((i = packet_ok(&rcvmhdr, cc, seq))) { if (! IN6_ARE_ADDR_EQUAL(&Rcv.sin6_addr, - &lastaddr)) { + &lastaddr)) { print(&rcvmhdr, cc); lastaddr = Rcv.sin6_addr; } - Printf(" %.3f ms", deltaT(&t1, &t2)); - switch(i - 1) { + printf(" %.3f ms", deltaT(&t1, &t2)); + switch (i - 1) { case ICMP6_DST_UNREACH_NOROUTE: ++unreachable; - Printf(" !N"); + printf(" !N"); break; case ICMP6_DST_UNREACH_ADMIN: ++unreachable; - Printf(" !P"); + printf(" !P"); break; case ICMP6_DST_UNREACH_NOTNEIGHBOR: ++unreachable; - Printf(" !S"); + printf(" !S"); break; case ICMP6_DST_UNREACH_ADDR: ++unreachable; - Printf(" !A"); + printf(" !A"); break; case ICMP6_DST_UNREACH_NOPORT: if (rcvhlim >= 0 && rcvhlim <= 1) - Printf(" !"); + printf(" !"); ++got_there; break; } @@ -889,7 +880,7 @@ main(argc, argv) } } if (cc == 0) - Printf(" *"); + printf(" *"); (void) fflush(stdout); } putchar('\n'); @@ -954,7 +945,7 @@ setpolicy(so, policy) return -1; } (void)setsockopt(so, IPPROTO_IPV6, IPV6_IPSEC_POLICY, - buf, ipsec_get_policylen(buf)); + buf, ipsec_get_policylen(buf)); free(buf); @@ -970,8 +961,8 @@ send_probe(seq, hops) struct opacket *op = outpacket; int i; - if(setsockopt(sndsock, IPPROTO_IPV6, IPV6_UNICAST_HOPS, - (char *)&hops, sizeof(hops)) < 0) { + if (setsockopt(sndsock, IPPROTO_IPV6, IPV6_UNICAST_HOPS, + (char *)&hops, sizeof(hops)) < 0) { perror("setsockopt IPV6_UNICAST_HOPS"); } @@ -981,13 +972,13 @@ send_probe(seq, hops) op->hops = hops; (void) gettimeofday(&op->tv, &tz); - i = sendto(sndsock, (char *)outpacket, datalen , 0, - (struct sockaddr *)&Dst, Dst.sin6_len); + i = sendto(sndsock, (char *)outpacket, datalen, 0, + (struct sockaddr *)&Dst, Dst.sin6_len); if (i < 0 || i != datalen) { if (i<0) perror("sendto"); - Printf("traceroute6: wrote %s %d chars, ret=%d\n", hostname, - datalen, i); + printf("traceroute6: wrote %s %d chars, ret=%d\n", + hostname, datalen, i); (void) fflush(stdout); } } @@ -999,7 +990,7 @@ get_hoplim(mhdr) struct cmsghdr *cm; for (cm = (struct cmsghdr *)CMSG_FIRSTHDR(mhdr); cm; - cm = (struct cmsghdr *)CMSG_NXTHDR(mhdr, cm)) { + cm = (struct cmsghdr *)CMSG_NXTHDR(mhdr, cm)) { if (cm->cmsg_level == IPPROTO_IPV6 && cm->cmsg_type == IPV6_HOPLIMIT && cm->cmsg_len == CMSG_LEN(sizeof(int))) @@ -1016,11 +1007,10 @@ deltaT(t1p, t2p) register double dt; dt = (double)(t2p->tv_sec - t1p->tv_sec) * 1000.0 + - (double)(t2p->tv_usec - t1p->tv_usec) / 1000.0; + (double)(t2p->tv_usec - t1p->tv_usec) / 1000.0; return (dt); } - /* * Convert an ICMP "type" field to a printable string. */ @@ -1036,7 +1026,7 @@ pr_type(t0) cp = "Destination Unreachable"; break; case ICMP6_PACKET_TOO_BIG: - cp = "Pakcet Too Big"; + cp = "Packet Too Big"; break; case ICMP6_TIME_EXCEEDED: cp = "Time Exceeded"; @@ -1081,7 +1071,6 @@ pr_type(t0) return cp; } - int packet_ok(mhdr, cc, seq) struct msghdr *mhdr; @@ -1109,7 +1098,7 @@ packet_ok(mhdr, cc, seq) if (getnameinfo((struct sockaddr *)from, from->sin6_len, hbuf, sizeof(hbuf), NULL, 0, NI_NUMERICHOST) != 0) strlcpy(hbuf, "invalid", sizeof(hbuf)); - Printf("packet too short (%d bytes) from %s\n", cc, + printf("packet too short (%d bytes) from %s\n", cc, hbuf); } return (0); @@ -1122,7 +1111,7 @@ packet_ok(mhdr, cc, seq) if (getnameinfo((struct sockaddr *)from, from->sin6_len, hbuf, sizeof(hbuf), NULL, 0, NI_NUMERICHOST) != 0) strlcpy(hbuf, "invalid", sizeof(hbuf)); - Printf("data too short (%d bytes) from %s\n", cc, hbuf); + printf("data too short (%d bytes) from %s\n", cc, hbuf); } return(0); } @@ -1132,7 +1121,7 @@ packet_ok(mhdr, cc, seq) rcvpktinfo = NULL; hlimp = NULL; for (cm = (struct cmsghdr *)CMSG_FIRSTHDR(mhdr); cm; - cm = (struct cmsghdr *)CMSG_NXTHDR(mhdr, cm)) { + cm = (struct cmsghdr *)CMSG_NXTHDR(mhdr, cm)) { if (cm->cmsg_level == IPPROTO_IPV6 && cm->cmsg_type == IPV6_PKTINFO && cm->cmsg_len == @@ -1179,26 +1168,25 @@ packet_ok(mhdr, cc, seq) if (getnameinfo((struct sockaddr *)from, from->sin6_len, sbuf, sizeof(sbuf), NULL, 0, NI_NUMERICHOST) != 0) - strlcpy(sbuf, "invalid", sizeof(hbuf)); - Printf("\n%d bytes from %s to %s", cc, sbuf, + strlcpy(sbuf, "invalid", sizeof(sbuf)); + printf("\n%d bytes from %s to %s", cc, sbuf, rcvpktinfo ? inet_ntop(AF_INET6, &rcvpktinfo->ipi6_addr, - dbuf, sizeof(dbuf)) - : "?"); - Printf(": icmp type %d (%s) code %d\n", type, pr_type(type), - icp->icmp6_code); + dbuf, sizeof(dbuf)) : "?"); + printf(": icmp type %d (%s) code %d\n", type, pr_type(type), + icp->icmp6_code); p = (u_int8_t *)(icp + 1); #define WIDTH 16 for (i = 0; i < cc; i++) { if (i % WIDTH == 0) - Printf("%04x:", i); + printf("%04x:", i); if (i % 4 == 0) - Printf(" "); - Printf("%02x", p[i]); + printf(" "); + printf("%02x", p[i]); if (i % WIDTH == WIDTH - 1) - Printf("\n"); + printf("\n"); } if (cc % WIDTH != 0) - Printf("\n"); + printf("\n"); } return(0); } @@ -1220,26 +1208,26 @@ get_udphdr(ip6, lim) nh = ip6->ip6_nxt; cp += sizeof(struct ip6_hdr); - while(lim - cp >= 8) { - switch(nh) { - case IPPROTO_ESP: - case IPPROTO_TCP: - case IPPROTO_ICMPV6: - return(NULL); - case IPPROTO_UDP: - return((struct udphdr *)cp); - case IPPROTO_FRAGMENT: - hlen = sizeof(struct ip6_frag); - nh = ((struct ip6_frag *)cp)->ip6f_nxt; - break; - case IPPROTO_AH: - hlen = (((struct ip6_ext *)cp)->ip6e_len + 2) << 2; - nh = ((struct ip6_ext *)cp)->ip6e_nxt; - break; - default: - hlen = (((struct ip6_ext *)cp)->ip6e_len + 1) << 3; - nh = ((struct ip6_ext *)cp)->ip6e_nxt; - break; + while (lim - cp >= 8) { + switch (nh) { + case IPPROTO_ESP: + case IPPROTO_TCP: + case IPPROTO_ICMPV6: + return(NULL); + case IPPROTO_UDP: + return((struct udphdr *)cp); + case IPPROTO_FRAGMENT: + hlen = sizeof(struct ip6_frag); + nh = ((struct ip6_frag *)cp)->ip6f_nxt; + break; + case IPPROTO_AH: + hlen = (((struct ip6_ext *)cp)->ip6e_len + 2) << 2; + nh = ((struct ip6_ext *)cp)->ip6e_nxt; + break; + default: + hlen = (((struct ip6_ext *)cp)->ip6e_len + 1) << 3; + nh = ((struct ip6_ext *)cp)->ip6e_nxt; + break; } cp += hlen; @@ -1260,23 +1248,21 @@ print(mhdr, cc) hbuf, sizeof(hbuf), NULL, 0, NI_NUMERICHOST) != 0) strlcpy(hbuf, "invalid", sizeof(hbuf)); if (nflag) - Printf(" %s", hbuf); + printf(" %s", hbuf); else if (lflag) - Printf(" %s (%s)", inetname((struct sockaddr *)from), hbuf); + printf(" %s (%s)", inetname((struct sockaddr *)from), hbuf); else - Printf(" %s", inetname((struct sockaddr *)from)); + printf(" %s", inetname((struct sockaddr *)from)); if (verbose) { #ifdef OLDRAWSOCKET - Printf(" %d bytes to %s", cc, + printf(" %d bytes to %s", cc, rcvpktinfo ? inet_ntop(AF_INET6, &rcvpktinfo->ipi6_addr, - hbuf, sizeof(hbuf)) - : "?"); + hbuf, sizeof(hbuf)) : "?"); #else - Printf(" %d bytes of data to %s", cc, + printf(" %d bytes of data to %s", cc, rcvpktinfo ? inet_ntop(AF_INET6, &rcvpktinfo->ipi6_addr, - hbuf, sizeof(hbuf)) - : "?"); + hbuf, sizeof(hbuf)) : "?"); #endif } } @@ -1289,6 +1275,7 @@ void tvsub(out, in) register struct timeval *out, *in; { + if ((out->tv_usec -= in->tv_usec) < 0) { out->tv_sec--; out->tv_usec += 1000000; @@ -1296,7 +1283,6 @@ tvsub(out, in) out->tv_sec -= in->tv_sec; } - /* * Construct an Internet address representation. * If the nflag has been supplied, give @@ -1313,8 +1299,8 @@ inetname(sa) if (first && !nflag) { first = 0; - if (gethostname(domain, MAXHOSTNAMELEN) == 0 && - (cp = index(domain, '.'))) + if (gethostname(domain, sizeof(domain)) == 0 && + (cp = strchr(domain, '.'))) (void) strlcpy(domain, cp + 1, sizeof(domain)); else domain[0] = 0; @@ -1323,7 +1309,7 @@ inetname(sa) if (!nflag) { if (getnameinfo(sa, sa->sa_len, line, sizeof(line), NULL, 0, NI_NAMEREQD) == 0) { - if ((cp = index(line, '.')) && + if ((cp = strchr(line, '.')) && !strcmp(cp + 1, domain)) *cp = 0; cp = line; -- cgit v1.1