move AF independet setsockopts down
authorflorian <florian@openbsd.org>
Wed, 23 Apr 2014 09:13:00 +0000 (09:13 +0000)
committerflorian <florian@openbsd.org>
Wed, 23 Apr 2014 09:13:00 +0000 (09:13 +0000)
OK benno@

usr.sbin/traceroute/traceroute.c
usr.sbin/traceroute6/traceroute6.c

index 441d8fe..ce8100e 100644 (file)
@@ -1,4 +1,4 @@
-/*     $OpenBSD: traceroute.c,v 1.118 2014/04/23 09:10:53 florian Exp $        */
+/*     $OpenBSD: traceroute.c,v 1.119 2014/04/23 09:13:00 florian Exp $        */
 /*     $NetBSD: traceroute.c,v 1.10 1995/05/21 15:50:45 mycroft Exp $  */
 
 /*-
@@ -613,18 +613,9 @@ main(int argc, char *argv[])
        ip->ip_v = IPVERSION;
        ip->ip_tos = tos;
 
-       if (options & SO_DEBUG)
-               (void) setsockopt(rcvsock, SOL_SOCKET, SO_DEBUG,
-                   (char *)&on, sizeof(on));
-       if (setsockopt(sndsock, SOL_SOCKET, SO_SNDBUF, (char *)&datalen,
-           sizeof(datalen)) < 0)
-               err(6, "SO_SNDBUF");
        if (setsockopt(sndsock, IPPROTO_IP, IP_HDRINCL, (char *)&on,
            sizeof(on)) < 0)
                err(6, "IP_HDRINCL");
-       if (options & SO_DEBUG)
-               (void) setsockopt(sndsock, SOL_SOCKET, SO_DEBUG,
-                   (char *)&on, sizeof(on));
 
        if (source) {
                (void) memset(&from4, 0, sizeof(from4));
@@ -642,6 +633,17 @@ main(int argc, char *argv[])
                        err(1, "bind");
        }
 
+       if (options & SO_DEBUG) {
+               (void) setsockopt(rcvsock, SOL_SOCKET, SO_DEBUG,
+                   (char *)&on, sizeof(on));
+               (void) setsockopt(sndsock, SOL_SOCKET, SO_DEBUG,
+                   (char *)&on, sizeof(on));
+       }
+
+       if (setsockopt(sndsock, SOL_SOCKET, SO_SNDBUF, (char *)&datalen,
+           sizeof(datalen)) < 0)
+               err(6, "SO_SNDBUF");
+
        if (getnameinfo(to, to->sa_len, hbuf,
            sizeof(hbuf), NULL, 0, NI_NUMERICHOST))
                strlcpy(hbuf, "(invalid)", sizeof(hbuf));
index f4a154d..d5908e9 100644 (file)
@@ -1,4 +1,4 @@
-/*     $OpenBSD: traceroute6.c,v 1.90 2014/04/23 09:11:35 florian Exp $        */
+/*     $OpenBSD: traceroute6.c,v 1.91 2014/04/23 09:13:00 florian Exp $        */
 /*     $KAME: traceroute6.c,v 1.63 2002/10/24 12:53:25 itojun Exp $    */
 
 /*
@@ -544,10 +544,6 @@ main(int argc, char *argv[])
        rcvmhdr.msg_control = (caddr_t) rcvcmsgbuf;
        rcvmhdr.msg_controllen = rcvcmsglen;
 
-       if (options & SO_DEBUG)
-               (void) setsockopt(rcvsock, SOL_SOCKET, SO_DEBUG,
-                   (char *)&on, sizeof(on));
-
        /*
         * Send UDP or ICMP
         */
@@ -555,12 +551,6 @@ main(int argc, char *argv[])
                close(sndsock);
                sndsock = rcvsock;
        }
-       if (setsockopt(sndsock, SOL_SOCKET, SO_SNDBUF, (char *)&datalen,
-           sizeof(datalen)) < 0)
-               err(6, "SO_SNDBUF");
-       if (options & SO_DEBUG)
-               (void) setsockopt(sndsock, SOL_SOCKET, SO_DEBUG,
-                   (char *)&on, sizeof(on));
 
        /*
         * Source selection
@@ -602,6 +592,17 @@ main(int argc, char *argv[])
                err(1, "getsockname");
        srcport = ntohs(from6.sin6_port);
 
+       if (options & SO_DEBUG) {
+               (void) setsockopt(sndsock, SOL_SOCKET, SO_DEBUG,
+                   (char *)&on, sizeof(on));
+               (void) setsockopt(rcvsock, SOL_SOCKET, SO_DEBUG,
+                   (char *)&on, sizeof(on));
+       }
+
+       if (setsockopt(sndsock, SOL_SOCKET, SO_SNDBUF, (char *)&datalen,
+           sizeof(datalen)) < 0)
+               err(6, "SO_SNDBUF");
+
        /*
         * Message to users
         */