diff options
-rw-r--r-- | usr.sbin/traceroute6/traceroute6.c | 257 |
1 files changed, 119 insertions, 138 deletions
diff --git a/usr.sbin/traceroute6/traceroute6.c b/usr.sbin/traceroute6/traceroute6.c index 25f8066090e..85810e877ec 100644 --- a/usr.sbin/traceroute6/traceroute6.c +++ b/usr.sbin/traceroute6/traceroute6.c @@ -1,4 +1,4 @@ -/* $OpenBSD: traceroute6.c,v 1.18 2002/02/19 02:34:10 itojun Exp $ */ +/* $OpenBSD: traceroute6.c,v 1.19 2002/05/21 19:11:08 deraadt Exp $ */ /* $KAME: traceroute6.c,v 1.39 2000/12/22 15:11:05 itojun Exp $ */ /* @@ -282,19 +282,6 @@ static char sccsid[] = "@(#)traceroute.c 8.1 (Berkeley) 6/6/93"; #define MAXPACKET 65535 /* max ip packet size */ -#ifndef FD_SET -#define NFDBITS (8*sizeof(fd_set)) -#define FD_SETSIZE NFDBITS -#define FD_SET(n, p) ((p)->fds_bits[(n)/NFDBITS] |= (1 << ((n) % NFDBITS))) -#define FD_CLR(n, p) ((p)->fds_bits[(n)/NFDBITS] &= ~(1 << ((n) % NFDBITS))) -#define FD_ISSET(n, p) ((p)->fds_bits[(n)/NFDBITS] & (1 << ((n) % NFDBITS))) -#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,22 +385,22 @@ 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 @@ -428,20 +415,21 @@ 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, - "traceroute6: min hoplimit must be <= %d.\n", max_hops); + fprintf(stderr, + "traceroute6: min hoplimit must be <= %d.\n", + max_hops); exit(1); } break; 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 +440,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,13 +469,14 @@ 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, - "traceroute6: max hoplimit must be >= %d.\n", first_hop); + fprintf(stderr, + "traceroute6: max hoplimit must be >= %d.\n", + first_hop); exit(1); } break; @@ -498,12 +487,11 @@ main(argc, argv) ep = NULL; port = strtoul(optarg, &ep, 0); if (!*argv || *ep) { - Fprintf(stderr, - "traceroute6: port.\n"); + fprintf(stderr, "traceroute6: port.\n"); exit(1); } if (port < 1) { - Fprintf(stderr, + fprintf(stderr, "traceroute6: port must be >0.\n"); exit(1); } @@ -512,12 +500,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 +527,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 +559,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 +579,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 +608,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 +616,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 +635,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 +662,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 +687,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 +709,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 +741,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 +760,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); @@ -787,9 +775,9 @@ main(argc, argv) exit(1); } if (getnameinfo((struct sockaddr *)&Src, Src.sin6_len, - src0, sizeof(src0), NULL, 0, - NI_NUMERICHOST | niflag)) { - Fprintf(stderr, "getnameinfo failed for source\n"); + src0, sizeof(src0), NULL, 0, + NI_NUMERICHOST | niflag)) { + fprintf(stderr, "getnameinfo failed for source\n"); exit(1); } source = src0; @@ -799,7 +787,7 @@ main(argc, argv) #if 1 ident = (getpid() & 0xffff) | 0x8000; #else - ident = 0; /*let the kernel pick one*/ + ident = 0; /* let the kernel pick one */ #endif Src.sin6_port = htons(ident); if (bind(sndsock, (struct sockaddr *)&Src, Src.sin6_len) < 0) { @@ -822,19 +810,18 @@ main(argc, argv) * Message to users */ if (getnameinfo((struct sockaddr *)&Dst, Dst.sin6_len, hbuf, - sizeof(hbuf), NULL, 0, NI_NUMERICHOST | niflag)) + sizeof(hbuf), NULL, 0, NI_NUMERICHOST | niflag)) 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 @@ -844,7 +831,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; @@ -857,32 +844,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(" %g ms", deltaT(&t1, &t2)); + printf(" %g 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; } @@ -890,7 +877,7 @@ main(argc, argv) } } if (cc == 0) - Printf(" *"); + printf(" *"); (void) fflush(stdout); } putchar('\n'); @@ -955,7 +942,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); @@ -971,8 +958,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"); } @@ -983,12 +970,12 @@ send_probe(seq, hops) (void) gettimeofday(&op->tv, &tz); i = sendto(sndsock, (char *)outpacket, datalen , 0, - (struct sockaddr *)&Dst, Dst.sin6_len); + (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); } } @@ -1000,7 +987,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))) @@ -1017,11 +1004,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. */ @@ -1037,7 +1023,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"; @@ -1082,7 +1068,6 @@ pr_type(t0) return cp; } - int packet_ok(mhdr, cc, seq) struct msghdr *mhdr; @@ -1111,7 +1096,7 @@ packet_ok(mhdr, cc, seq) hbuf, sizeof(hbuf), NULL, 0, NI_NUMERICHOST | niflag) != 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); @@ -1125,7 +1110,7 @@ packet_ok(mhdr, cc, seq) hbuf, sizeof(hbuf), NULL, 0, NI_NUMERICHOST | niflag) != 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); } @@ -1135,7 +1120,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 == @@ -1183,25 +1168,24 @@ packet_ok(mhdr, cc, seq) if (getnameinfo((struct sockaddr *)from, from->sin6_len, sbuf, sizeof(sbuf), NULL, 0, NI_NUMERICHOST | niflag) != 0) strlcpy(sbuf, "invalid", sizeof(hbuf)); - Printf("\n%d bytes from %s to %s", cc, 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); } @@ -1223,23 +1207,23 @@ get_udphdr(ip6, lim) nh = ip6->ip6_nxt; cp += sizeof(struct ip6_hdr); - while(lim - cp >= 8) { + while (lim - cp >= 8) { switch(nh) { - case IPPROTO_ESP: - case IPPROTO_TCP: - case IPPROTO_ICMPV6: + case IPPROTO_ESP: + case IPPROTO_TCP: + case IPPROTO_ICMPV6: return(NULL); - case IPPROTO_UDP: + case IPPROTO_UDP: return((struct udphdr *)cp); - case IPPROTO_FRAGMENT: + case IPPROTO_FRAGMENT: hlen = sizeof(struct ip6_frag); nh = ((struct ip6_frag *)cp)->ip6f_nxt; break; - case IPPROTO_AH: + case IPPROTO_AH: hlen = (((struct ip6_ext *)cp)->ip6e_len + 2) << 2; nh = ((struct ip6_ext *)cp)->ip6e_nxt; break; - default: + default: hlen = (((struct ip6_ext *)cp)->ip6e_len + 1) << 3; nh = ((struct ip6_ext *)cp)->ip6e_nxt; break; @@ -1263,23 +1247,21 @@ print(mhdr, cc) hbuf, sizeof(hbuf), NULL, 0, NI_NUMERICHOST | niflag) != 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 } } @@ -1299,7 +1281,6 @@ tvsub(out, in) out->tv_sec -= in->tv_sec; } - /* * Construct an Internet address representation. * If the nflag has been supplied, give @@ -1344,7 +1325,7 @@ inetname(sa) void usage() { - (void)fprintf(stderr, + fprintf(stderr, "usage: traceroute6 [-dlnrv] [-f firsthop] [-g gateway] [-m hoplimit] [-p port]\n" " [-q probes] [-s src] [-w waittime] target [datalen]\n"); exit(1); |