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-- |
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 |