components/mtr/patches/FINBIO.patch
author Mike Sullivan <Mike.Sullivan@Oracle.COM>
Sat, 15 Aug 2015 10:34:08 -0700
changeset 4783 399cd14618d4
parent 4045 c595d2a22c25
permissions -rw-r--r--
Close of build 81.1.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
4045
c595d2a22c25 PSARC 2008/161 MTR - My Traceroute
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
     1
This fixes an upstream bug:
c595d2a22c25 PSARC 2008/161 MTR - My Traceroute
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
     2
c595d2a22c25 PSARC 2008/161 MTR - My Traceroute
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
     3
    https://github.com/traviscross/mtr/issues/35
c595d2a22c25 PSARC 2008/161 MTR - My Traceroute
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
     4
c595d2a22c25 PSARC 2008/161 MTR - My Traceroute
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
     5
The patch is from
c595d2a22c25 PSARC 2008/161 MTR - My Traceroute
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
     6
c595d2a22c25 PSARC 2008/161 MTR - My Traceroute
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
     7
    https://bugs.launchpad.net/mtr/+bug/1273486/comments/5
c595d2a22c25 PSARC 2008/161 MTR - My Traceroute
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
     8
c595d2a22c25 PSARC 2008/161 MTR - My Traceroute
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
     9
--- mtr-0.86/net.c	2014-12-09 03:20:57.000000000 -0800
c595d2a22c25 PSARC 2008/161 MTR - My Traceroute
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    10
+++ mtr-0.86/net.c	2015-03-20 09:43:55.576572132 -0700
c595d2a22c25 PSARC 2008/161 MTR - My Traceroute
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    11
@@ -301,7 +301,7 @@ void net_send_tcp(int index)
c595d2a22c25 PSARC 2008/161 MTR - My Traceroute
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    12
 void net_send_tcp(int index)
c595d2a22c25 PSARC 2008/161 MTR - My Traceroute
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    13
 {
c595d2a22c25 PSARC 2008/161 MTR - My Traceroute
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    14
   int ttl, s;
c595d2a22c25 PSARC 2008/161 MTR - My Traceroute
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    15
-  int opt = 1;
c595d2a22c25 PSARC 2008/161 MTR - My Traceroute
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    16
+  int flags;
c595d2a22c25 PSARC 2008/161 MTR - My Traceroute
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    17
   int port;
c595d2a22c25 PSARC 2008/161 MTR - My Traceroute
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    18
   struct sockaddr_storage local;
c595d2a22c25 PSARC 2008/161 MTR - My Traceroute
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    19
   struct sockaddr_storage remote;
c595d2a22c25 PSARC 2008/161 MTR - My Traceroute
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    20
@@ -354,10 +354,10 @@ void net_send_tcp(int index)
c595d2a22c25 PSARC 2008/161 MTR - My Traceroute
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    21
     exit(EXIT_FAILURE);
c595d2a22c25 PSARC 2008/161 MTR - My Traceroute
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    22
   }
c595d2a22c25 PSARC 2008/161 MTR - My Traceroute
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    23
 
c595d2a22c25 PSARC 2008/161 MTR - My Traceroute
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    24
-  opt = 1;
c595d2a22c25 PSARC 2008/161 MTR - My Traceroute
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    25
-  if (ioctl(s, FIONBIO, &opt)) {
c595d2a22c25 PSARC 2008/161 MTR - My Traceroute
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    26
+  flags = fcntl(s, F_GETFL, 0);
c595d2a22c25 PSARC 2008/161 MTR - My Traceroute
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    27
+  if (fcntl(s, F_SETFL, flags | O_NONBLOCK) == -1) {
c595d2a22c25 PSARC 2008/161 MTR - My Traceroute
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    28
     display_clear();
c595d2a22c25 PSARC 2008/161 MTR - My Traceroute
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    29
-    perror("ioctl FIONBIO");
c595d2a22c25 PSARC 2008/161 MTR - My Traceroute
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    30
+    perror("fcntl F_SETFL(O_NONBLOCK)");
c595d2a22c25 PSARC 2008/161 MTR - My Traceroute
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    31
     exit(EXIT_FAILURE);
c595d2a22c25 PSARC 2008/161 MTR - My Traceroute
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    32
   }
c595d2a22c25 PSARC 2008/161 MTR - My Traceroute
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    33