components/mtr/patches/FINBIO.patch
author Danek Duvall <danek.duvall@oracle.com>
Tue, 31 Mar 2015 13:48:00 -0700
branchs11-update
changeset 4058 2c35b27b5cde
permissions -rw-r--r--
PSARC 2008/161 MTR - My Traceroute 18997106 mtr 0.86
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
4058
2c35b27b5cde PSARC 2008/161 MTR - My Traceroute
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
     1
This fixes an upstream bug:
2c35b27b5cde PSARC 2008/161 MTR - My Traceroute
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
     2
2c35b27b5cde PSARC 2008/161 MTR - My Traceroute
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
     3
    https://github.com/traviscross/mtr/issues/35
2c35b27b5cde PSARC 2008/161 MTR - My Traceroute
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
     4
2c35b27b5cde PSARC 2008/161 MTR - My Traceroute
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
     5
The patch is from
2c35b27b5cde PSARC 2008/161 MTR - My Traceroute
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
     6
2c35b27b5cde 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
2c35b27b5cde PSARC 2008/161 MTR - My Traceroute
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
     8
2c35b27b5cde 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
2c35b27b5cde 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
2c35b27b5cde 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)
2c35b27b5cde PSARC 2008/161 MTR - My Traceroute
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    12
 void net_send_tcp(int index)
2c35b27b5cde PSARC 2008/161 MTR - My Traceroute
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    13
 {
2c35b27b5cde PSARC 2008/161 MTR - My Traceroute
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    14
   int ttl, s;
2c35b27b5cde PSARC 2008/161 MTR - My Traceroute
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    15
-  int opt = 1;
2c35b27b5cde PSARC 2008/161 MTR - My Traceroute
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    16
+  int flags;
2c35b27b5cde PSARC 2008/161 MTR - My Traceroute
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    17
   int port;
2c35b27b5cde PSARC 2008/161 MTR - My Traceroute
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    18
   struct sockaddr_storage local;
2c35b27b5cde PSARC 2008/161 MTR - My Traceroute
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    19
   struct sockaddr_storage remote;
2c35b27b5cde 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)
2c35b27b5cde PSARC 2008/161 MTR - My Traceroute
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    21
     exit(EXIT_FAILURE);
2c35b27b5cde PSARC 2008/161 MTR - My Traceroute
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    22
   }
2c35b27b5cde PSARC 2008/161 MTR - My Traceroute
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    23
 
2c35b27b5cde PSARC 2008/161 MTR - My Traceroute
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    24
-  opt = 1;
2c35b27b5cde PSARC 2008/161 MTR - My Traceroute
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    25
-  if (ioctl(s, FIONBIO, &opt)) {
2c35b27b5cde PSARC 2008/161 MTR - My Traceroute
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    26
+  flags = fcntl(s, F_GETFL, 0);
2c35b27b5cde 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) {
2c35b27b5cde PSARC 2008/161 MTR - My Traceroute
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    28
     display_clear();
2c35b27b5cde PSARC 2008/161 MTR - My Traceroute
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    29
-    perror("ioctl FIONBIO");
2c35b27b5cde PSARC 2008/161 MTR - My Traceroute
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    30
+    perror("fcntl F_SETFL(O_NONBLOCK)");
2c35b27b5cde PSARC 2008/161 MTR - My Traceroute
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    31
     exit(EXIT_FAILURE);
2c35b27b5cde PSARC 2008/161 MTR - My Traceroute
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    32
   }
2c35b27b5cde PSARC 2008/161 MTR - My Traceroute
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    33