Patch from Gyepi SAM <gyepi@praxis-sw.com>:
authorEric Andersen <andersen@codepoet.org>
Thu, 6 Jun 2002 12:24:51 +0000 (12:24 -0000)
committerEric Andersen <andersen@codepoet.org>
Thu, 6 Jun 2002 12:24:51 +0000 (12:24 -0000)
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

networking/traceroute.c

index 5bd3ddb0edfea119b4678ef9c66e5aadf606b5b6..e05a50fbc528b3cbe7ea62b98a67431c891851aa 100644 (file)
@@ -233,15 +233,12 @@ inetname(struct sockaddr_in *from)
 
        if (first && !nflag) {
                first = 0;
-               if (gethostname(domain, MAXHOSTNAMELEN) == 0 &&
-                   (cp = strchr(domain, '.')))
-                       (void) strcpy(domain, cp + 1);
-               else
+               if (getdomainname(domain, MAXHOSTNAMELEN) != 0)
                        domain[0] = 0;
        }
        cp = 0;
        if (!nflag && from->sin_addr.s_addr != INADDR_ANY) {
-               if(INET_rresolve(name, sizeof(name), from, 0, 0xffffffff) >= 0) {
+               if(INET_rresolve(name, sizeof(name), from, 0x4000, 0xffffffff) >= 0) {
                        if ((cp = strchr(name, '.')) &&
                            !strcmp(cp + 1, domain))
                                *cp = 0;
@@ -321,8 +318,7 @@ wait_for_reply(int sock, struct sockaddr_in *from, int reset_timer)
  * Convert an ICMP "type" field to a printable string.
  */
 static inline const char *
-pr_type(t)
-       u_char t;
+pr_type(u_char t)
 {
        static const char * const ttab[] = {
        "Echo Reply",   "ICMP 1",       "ICMP 2",       "Dest Unreachable",
@@ -546,12 +542,12 @@ traceroute_main(argc, argv)
        if (setsockopt(sndsock, SOL_SOCKET, SO_SNDBUF, (char *)&datalen,
                       sizeof(datalen)) < 0)
                perror_msg_and_die("SO_SNDBUF");
-#endif SO_SNDBUF
+#endif
 #ifdef IP_HDRINCL
        if (setsockopt(sndsock, IPPROTO_IP, IP_HDRINCL, (char *)&on,
                       sizeof(on)) < 0)
                perror_msg_and_die("IP_HDRINCL");
-#endif IP_HDRINCL
+#endif
 #ifdef CONFIG_FEATURE_TRACEROUTE_SO_DEBUG
        if (options & SO_DEBUG)
                (void) setsockopt(sndsock, SOL_SOCKET, SO_DEBUG,
@@ -571,7 +567,7 @@ traceroute_main(argc, argv)
 #ifndef IP_HDRINCL
                if (bind(sndsock, (struct sockaddr *)&from, sizeof(from)) < 0)
                        perror_msg_and_die("bind");
-#endif IP_HDRINCL
+#endif
        }
 
        fprintf(stderr, "traceroute to %s (%s)", hostname,