diff options
author | Eric Andersen <andersen@codepoet.org> | 2002-06-06 12:24:51 +0000 |
---|---|---|
committer | Eric Andersen <andersen@codepoet.org> | 2002-06-06 12:24:51 +0000 |
commit | ad79c0b629e123685cbb33d6b393225343fadedf (patch) | |
tree | 9f5434fcd4b2d71c0f0bacb29214324617b5f53c | |
parent | 77d22c4abda04ee2e54b3f189ff41b493fb4f54e (diff) | |
download | busybox-w32-ad79c0b629e123685cbb33d6b393225343fadedf.tar.gz busybox-w32-ad79c0b629e123685cbb33d6b393225343fadedf.tar.bz2 busybox-w32-ad79c0b629e123685cbb33d6b393225343fadedf.zip |
Patch from Gyepi SAM <gyepi@praxis-sw.com>:
Fixed up domain removal for local domains. GNU traceroute does not do this. I
don't know why we do. Fixed incorrect argument for reverse resolution. Clean
up cruft that appears when CONFIG_FEATURE_TRACEROUTE_VERBOSE is defined
-rw-r--r-- | networking/traceroute.c | 16 |
1 files changed, 6 insertions, 10 deletions
diff --git a/networking/traceroute.c b/networking/traceroute.c index 5bd3ddb0e..e05a50fbc 100644 --- a/networking/traceroute.c +++ b/networking/traceroute.c | |||
@@ -233,15 +233,12 @@ inetname(struct sockaddr_in *from) | |||
233 | 233 | ||
234 | if (first && !nflag) { | 234 | if (first && !nflag) { |
235 | first = 0; | 235 | first = 0; |
236 | if (gethostname(domain, MAXHOSTNAMELEN) == 0 && | 236 | if (getdomainname(domain, MAXHOSTNAMELEN) != 0) |
237 | (cp = strchr(domain, '.'))) | ||
238 | (void) strcpy(domain, cp + 1); | ||
239 | else | ||
240 | domain[0] = 0; | 237 | domain[0] = 0; |
241 | } | 238 | } |
242 | cp = 0; | 239 | cp = 0; |
243 | if (!nflag && from->sin_addr.s_addr != INADDR_ANY) { | 240 | if (!nflag && from->sin_addr.s_addr != INADDR_ANY) { |
244 | if(INET_rresolve(name, sizeof(name), from, 0, 0xffffffff) >= 0) { | 241 | if(INET_rresolve(name, sizeof(name), from, 0x4000, 0xffffffff) >= 0) { |
245 | if ((cp = strchr(name, '.')) && | 242 | if ((cp = strchr(name, '.')) && |
246 | !strcmp(cp + 1, domain)) | 243 | !strcmp(cp + 1, domain)) |
247 | *cp = 0; | 244 | *cp = 0; |
@@ -321,8 +318,7 @@ wait_for_reply(int sock, struct sockaddr_in *from, int reset_timer) | |||
321 | * Convert an ICMP "type" field to a printable string. | 318 | * Convert an ICMP "type" field to a printable string. |
322 | */ | 319 | */ |
323 | static inline const char * | 320 | static inline const char * |
324 | pr_type(t) | 321 | pr_type(u_char t) |
325 | u_char t; | ||
326 | { | 322 | { |
327 | static const char * const ttab[] = { | 323 | static const char * const ttab[] = { |
328 | "Echo Reply", "ICMP 1", "ICMP 2", "Dest Unreachable", | 324 | "Echo Reply", "ICMP 1", "ICMP 2", "Dest Unreachable", |
@@ -546,12 +542,12 @@ traceroute_main(argc, argv) | |||
546 | if (setsockopt(sndsock, SOL_SOCKET, SO_SNDBUF, (char *)&datalen, | 542 | if (setsockopt(sndsock, SOL_SOCKET, SO_SNDBUF, (char *)&datalen, |
547 | sizeof(datalen)) < 0) | 543 | sizeof(datalen)) < 0) |
548 | perror_msg_and_die("SO_SNDBUF"); | 544 | perror_msg_and_die("SO_SNDBUF"); |
549 | #endif SO_SNDBUF | 545 | #endif |
550 | #ifdef IP_HDRINCL | 546 | #ifdef IP_HDRINCL |
551 | if (setsockopt(sndsock, IPPROTO_IP, IP_HDRINCL, (char *)&on, | 547 | if (setsockopt(sndsock, IPPROTO_IP, IP_HDRINCL, (char *)&on, |
552 | sizeof(on)) < 0) | 548 | sizeof(on)) < 0) |
553 | perror_msg_and_die("IP_HDRINCL"); | 549 | perror_msg_and_die("IP_HDRINCL"); |
554 | #endif IP_HDRINCL | 550 | #endif |
555 | #ifdef CONFIG_FEATURE_TRACEROUTE_SO_DEBUG | 551 | #ifdef CONFIG_FEATURE_TRACEROUTE_SO_DEBUG |
556 | if (options & SO_DEBUG) | 552 | if (options & SO_DEBUG) |
557 | (void) setsockopt(sndsock, SOL_SOCKET, SO_DEBUG, | 553 | (void) setsockopt(sndsock, SOL_SOCKET, SO_DEBUG, |
@@ -571,7 +567,7 @@ traceroute_main(argc, argv) | |||
571 | #ifndef IP_HDRINCL | 567 | #ifndef IP_HDRINCL |
572 | if (bind(sndsock, (struct sockaddr *)&from, sizeof(from)) < 0) | 568 | if (bind(sndsock, (struct sockaddr *)&from, sizeof(from)) < 0) |
573 | perror_msg_and_die("bind"); | 569 | perror_msg_and_die("bind"); |
574 | #endif IP_HDRINCL | 570 | #endif |
575 | } | 571 | } |
576 | 572 | ||
577 | fprintf(stderr, "traceroute to %s (%s)", hostname, | 573 | fprintf(stderr, "traceroute to %s (%s)", hostname, |