author | jjg |
Wed, 04 Jan 2017 18:33:20 -0800 | |
changeset 43029 | 1cd1c816581e |
parent 38471 | 7baac1d79ed1 |
permissions | -rw-r--r-- |
32845
e630c3008f2c
8135305: InetAddress.isReachable reports true when loopback interface is specified
robm
parents:
diff
changeset
|
1 |
import java.io.*; |
e630c3008f2c
8135305: InetAddress.isReachable reports true when loopback interface is specified
robm
parents:
diff
changeset
|
2 |
import java.net.*; |
e630c3008f2c
8135305: InetAddress.isReachable reports true when loopback interface is specified
robm
parents:
diff
changeset
|
3 |
import java.util.*; |
e630c3008f2c
8135305: InetAddress.isReachable reports true when loopback interface is specified
robm
parents:
diff
changeset
|
4 |
|
e630c3008f2c
8135305: InetAddress.isReachable reports true when loopback interface is specified
robm
parents:
diff
changeset
|
5 |
/** |
e630c3008f2c
8135305: InetAddress.isReachable reports true when loopback interface is specified
robm
parents:
diff
changeset
|
6 |
* @test |
e630c3008f2c
8135305: InetAddress.isReachable reports true when loopback interface is specified
robm
parents:
diff
changeset
|
7 |
* @bug 8135305 |
38471
7baac1d79ed1
8157499: Mark several tests from jdk_net as intermittently failing
amlu
parents:
32845
diff
changeset
|
8 |
* @key intermittent |
32845
e630c3008f2c
8135305: InetAddress.isReachable reports true when loopback interface is specified
robm
parents:
diff
changeset
|
9 |
* @summary ensure we can't ping external hosts via loopback if |
e630c3008f2c
8135305: InetAddress.isReachable reports true when loopback interface is specified
robm
parents:
diff
changeset
|
10 |
*/ |
e630c3008f2c
8135305: InetAddress.isReachable reports true when loopback interface is specified
robm
parents:
diff
changeset
|
11 |
|
e630c3008f2c
8135305: InetAddress.isReachable reports true when loopback interface is specified
robm
parents:
diff
changeset
|
12 |
public class IsReachableViaLoopbackTest { |
e630c3008f2c
8135305: InetAddress.isReachable reports true when loopback interface is specified
robm
parents:
diff
changeset
|
13 |
public static void main(String[] args) { |
e630c3008f2c
8135305: InetAddress.isReachable reports true when loopback interface is specified
robm
parents:
diff
changeset
|
14 |
try { |
e630c3008f2c
8135305: InetAddress.isReachable reports true when loopback interface is specified
robm
parents:
diff
changeset
|
15 |
InetAddress addr = InetAddress.getByName("localhost"); |
e630c3008f2c
8135305: InetAddress.isReachable reports true when loopback interface is specified
robm
parents:
diff
changeset
|
16 |
InetAddress remoteAddr = InetAddress.getByName("bugs.openjdk.java.net"); |
e630c3008f2c
8135305: InetAddress.isReachable reports true when loopback interface is specified
robm
parents:
diff
changeset
|
17 |
if (!addr.isReachable(10000)) |
e630c3008f2c
8135305: InetAddress.isReachable reports true when loopback interface is specified
robm
parents:
diff
changeset
|
18 |
throw new RuntimeException("Localhost should always be reachable"); |
e630c3008f2c
8135305: InetAddress.isReachable reports true when loopback interface is specified
robm
parents:
diff
changeset
|
19 |
NetworkInterface inf = NetworkInterface.getByInetAddress(addr); |
e630c3008f2c
8135305: InetAddress.isReachable reports true when loopback interface is specified
robm
parents:
diff
changeset
|
20 |
if (inf != null) { |
e630c3008f2c
8135305: InetAddress.isReachable reports true when loopback interface is specified
robm
parents:
diff
changeset
|
21 |
if (!addr.isReachable(inf, 20, 10000)) { |
e630c3008f2c
8135305: InetAddress.isReachable reports true when loopback interface is specified
robm
parents:
diff
changeset
|
22 |
throw new RuntimeException("Localhost should always be reachable"); |
e630c3008f2c
8135305: InetAddress.isReachable reports true when loopback interface is specified
robm
parents:
diff
changeset
|
23 |
} else { |
e630c3008f2c
8135305: InetAddress.isReachable reports true when loopback interface is specified
robm
parents:
diff
changeset
|
24 |
System.out.println(addr + " is reachable"); |
e630c3008f2c
8135305: InetAddress.isReachable reports true when loopback interface is specified
robm
parents:
diff
changeset
|
25 |
} |
e630c3008f2c
8135305: InetAddress.isReachable reports true when loopback interface is specified
robm
parents:
diff
changeset
|
26 |
if (remoteAddr.isReachable(inf, 20, 10000)) { |
e630c3008f2c
8135305: InetAddress.isReachable reports true when loopback interface is specified
robm
parents:
diff
changeset
|
27 |
throw new RuntimeException(remoteAddr + " is reachable"); |
e630c3008f2c
8135305: InetAddress.isReachable reports true when loopback interface is specified
robm
parents:
diff
changeset
|
28 |
} else { |
e630c3008f2c
8135305: InetAddress.isReachable reports true when loopback interface is specified
robm
parents:
diff
changeset
|
29 |
System.out.println(remoteAddr + " is NOT reachable"); |
e630c3008f2c
8135305: InetAddress.isReachable reports true when loopback interface is specified
robm
parents:
diff
changeset
|
30 |
} |
e630c3008f2c
8135305: InetAddress.isReachable reports true when loopback interface is specified
robm
parents:
diff
changeset
|
31 |
} else { |
e630c3008f2c
8135305: InetAddress.isReachable reports true when loopback interface is specified
robm
parents:
diff
changeset
|
32 |
System.out.println("inf == null"); |
e630c3008f2c
8135305: InetAddress.isReachable reports true when loopback interface is specified
robm
parents:
diff
changeset
|
33 |
} |
e630c3008f2c
8135305: InetAddress.isReachable reports true when loopback interface is specified
robm
parents:
diff
changeset
|
34 |
|
e630c3008f2c
8135305: InetAddress.isReachable reports true when loopback interface is specified
robm
parents:
diff
changeset
|
35 |
} catch (IOException e) { |
e630c3008f2c
8135305: InetAddress.isReachable reports true when loopback interface is specified
robm
parents:
diff
changeset
|
36 |
throw new RuntimeException("Unexpected exception:" + e); |
e630c3008f2c
8135305: InetAddress.isReachable reports true when loopback interface is specified
robm
parents:
diff
changeset
|
37 |
} |
e630c3008f2c
8135305: InetAddress.isReachable reports true when loopback interface is specified
robm
parents:
diff
changeset
|
38 |
System.out.println("IsReachableViaLoopbackTest EXIT"); |
e630c3008f2c
8135305: InetAddress.isReachable reports true when loopback interface is specified
robm
parents:
diff
changeset
|
39 |
} |
e630c3008f2c
8135305: InetAddress.isReachable reports true when loopback interface is specified
robm
parents:
diff
changeset
|
40 |
} |
e630c3008f2c
8135305: InetAddress.isReachable reports true when loopback interface is specified
robm
parents:
diff
changeset
|
41 |