26 * @bug 8195976 |
26 * @bug 8195976 |
27 * @summary Tests that we can get the attributes of a DNS entry using special |
27 * @summary Tests that we can get the attributes of a DNS entry using special |
28 * qualifiers. |
28 * qualifiers. |
29 * @modules java.base/sun.security.util |
29 * @modules java.base/sun.security.util |
30 * @library ../lib/ |
30 * @library ../lib/ |
31 * @build DNSTestUtils DNSServer DNSTracer |
|
32 * @run main GetAny |
31 * @run main GetAny |
33 */ |
32 */ |
34 |
33 |
35 import javax.naming.directory.Attributes; |
34 import javax.naming.directory.Attributes; |
36 import javax.naming.directory.DirContext; |
|
37 import javax.naming.directory.InitialDirContext; |
|
38 import java.net.DatagramSocket; |
|
39 import java.net.InetAddress; |
|
40 import java.util.Hashtable; |
|
41 |
35 |
42 public class GetAny { |
36 public class GetAny extends GetAttrsBase { |
43 private static final String KEY = "host1"; |
|
44 |
37 |
45 private static final String[] MANDATORY = { "A", "MX", "HINFO", "TXT", "29" |
38 public static void main(String[] args) throws Exception { |
46 // "LOC" |
39 new GetAny().run(args); |
47 }; |
40 } |
48 |
41 |
49 private static final String[] OPTIONAL = {}; |
42 @Override public Attributes getAttributes() { |
|
43 return null; |
|
44 } |
50 |
45 |
51 public static void main(String argv[]) throws Exception { |
46 @Override public void runTest() throws Exception { |
52 // Create socket on localhost only to avoid possible noise packet |
47 initContext(); |
53 DatagramSocket socket = new DatagramSocket(0, |
|
54 InetAddress.getLoopbackAddress()); |
|
55 |
48 |
56 // initialize test |
49 // Any type from IN class |
57 Hashtable<Object, Object> env; |
50 Attributes retAttrs = context() |
|
51 .getAttributes(getKey(), new String[] { "*" }); |
|
52 verifyAttributes(retAttrs); |
58 |
53 |
59 env = DNSTestUtils.initEnv(socket, GetAny.class.getName(), argv); |
54 retAttrs = context().getAttributes(getKey(), new String[] { "* *" }); |
|
55 verifyAttributes(retAttrs); |
60 |
56 |
61 DirContext ctx = null; |
57 retAttrs = context().getAttributes(getKey(), new String[] { "IN *" }); |
62 |
58 verifyAttributes(retAttrs); |
63 try { |
|
64 // connect to server |
|
65 ctx = new InitialDirContext(env); |
|
66 |
|
67 // Any type from IN class |
|
68 Attributes retAttrs = ctx.getAttributes(KEY, new String[] { "*" }); |
|
69 DNSTestUtils.verifySchema(retAttrs, MANDATORY, OPTIONAL); |
|
70 |
|
71 retAttrs = ctx.getAttributes(KEY, new String[] { "* *" }); |
|
72 DNSTestUtils.verifySchema(retAttrs, MANDATORY, OPTIONAL); |
|
73 |
|
74 retAttrs = ctx.getAttributes(KEY, new String[] { "IN *" }); |
|
75 DNSTestUtils.verifySchema(retAttrs, MANDATORY, OPTIONAL); |
|
76 |
|
77 } finally { |
|
78 DNSTestUtils.cleanup(ctx); |
|
79 } |
|
80 } |
59 } |
81 } |
60 } |