diff --git a/CHANGELOG.md b/CHANGELOG.md index 9c3b09d3..c5c4dafe 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -59,6 +59,8 @@ For example: Path.getFirstHopAddress(), DatagramChannel.setPathPolicy() - Fixed disabled SHIM tests and general test cleanup. [#149](https://github.com/scionproto-contrib/jpan/pull/149) - Fixed parsing of /etc/hosts [#150](https://github.com/scionproto-contrib/jpan/pull/150) +- Fixed warning when dnsjava parses /etc/hosts with SCION adresses + [#155](https://github.com/scionproto-contrib/jpan/pull/155) ## [0.4.1] - 2024-11-22 diff --git a/src/main/java/org/scion/jpan/internal/DNSHelper.java b/src/main/java/org/scion/jpan/internal/DNSHelper.java index 766dc8ff..5c1e926e 100644 --- a/src/main/java/org/scion/jpan/internal/DNSHelper.java +++ b/src/main/java/org/scion/jpan/internal/DNSHelper.java @@ -62,7 +62,7 @@ public static R queryTXT(String hostName, String key, Function va } public static R queryTXT(Name name, String key, Function valueParser) { - org.xbill.DNS.Record[] records = new Lookup(name, Type.TXT).run(); + org.xbill.DNS.Record[] records = newLookup(name, Type.TXT).run(); if (records == null) { return null; } @@ -84,7 +84,7 @@ public static R queryTXT(Name name, String key, Function valuePar } public static InetAddress queryA(Name hostName) { - org.xbill.DNS.Record[] recordsA = new Lookup(hostName, Type.A).run(); + org.xbill.DNS.Record[] recordsA = newLookup(hostName, Type.A).run(); if (recordsA == null) { throw new ScionRuntimeException("No DNS A entry found for host: " + hostName); } @@ -93,7 +93,7 @@ public static InetAddress queryA(Name hostName) { } public static InetAddress queryAAAA(Name hostName) { - org.xbill.DNS.Record[] recordsA = new Lookup(hostName, Type.AAAA).run(); + org.xbill.DNS.Record[] recordsA = newLookup(hostName, Type.AAAA).run(); if (recordsA == null) { throw new ScionRuntimeException("No DNS AAAA entry found for host: " + hostName); } @@ -147,7 +147,7 @@ public static String getScionDiscoveryAddress(String hostName) throws IOExceptio } private static String getScionDiscoveryAddress(Name hostName) { - org.xbill.DNS.Record[] records = new Lookup(hostName, Type.NAPTR).run(); + org.xbill.DNS.Record[] records = newLookup(hostName, Type.NAPTR).run(); if (records == null) { LOG.debug("Checking discovery service NAPTR: no records found"); return null; @@ -211,7 +211,7 @@ static Name findSearchDomainViaReverseLookup() { Resolver resolver = new SimpleResolver("zh.akamaitech.net"); // IPv4 - Lookup lookup4 = new Lookup(reverseLookupHost, Type.A); + Lookup lookup4 = newLookup(reverseLookupHost, Type.A); lookup4.setResolver(resolver); org.xbill.DNS.Record[] records4 = lookup4.run(); for (org.xbill.DNS.Record record4 : records4) { @@ -223,7 +223,7 @@ static Name findSearchDomainViaReverseLookup() { } } - Lookup lookup6 = new Lookup(reverseLookupHost, Type.AAAA); + Lookup lookup6 = newLookup(reverseLookupHost, Type.AAAA); lookup6.setResolver(resolver); org.xbill.DNS.Record[] records6 = lookup6.run(); for (org.xbill.DNS.Record record6 : records6) { @@ -243,7 +243,7 @@ static Name findSearchDomainViaReverseLookup() { private static Name findSearchDomainViaReverseLookup(InetAddress address) throws TextParseException { Name name = Name.fromString(reverseAddressForARPA(address)); - org.xbill.DNS.Record[] records = new Lookup(name, Type.PTR).run(); + org.xbill.DNS.Record[] records = newLookup(name, Type.PTR).run(); if (records == null) { return null; } @@ -251,7 +251,7 @@ private static Name findSearchDomainViaReverseLookup(InetAddress address) PTRRecord ptrRecord = (PTRRecord) record2; Name domain = ptrRecord.getTarget(); while (true) { - if (new Lookup(domain, Type.NAPTR).run() != null) { + if (newLookup(domain, Type.NAPTR).run() != null) { return domain; } @@ -288,4 +288,12 @@ static String reverseAddressForARPA(InetAddress address) { } return sb.toString(); } + + private static Lookup newLookup(Name name, int type) { + Lookup lookup = new Lookup(name, type); + // Avoid parsing /etc/hosts because this would print a WARNING, see + // https://github.com/dnsjava/dnsjava/issues/361 + lookup.setHostsFileParser(null); + return lookup; + } } diff --git a/src/test/resources/simplelogger.properties b/src/test/resources/simplelogger.properties index bd4f1db1..1601ad9f 100644 --- a/src/test/resources/simplelogger.properties +++ b/src/test/resources/simplelogger.properties @@ -1,4 +1,3 @@ org.slf4j.simpleLogger.defaultLogLevel = WARN # org.slf4j.simpleLogger.defaultLogLevel = INFO # org.slf4j.simpleLogger.defaultLogLevel = DEBUG -# org.slf4j.simpleLogger.log.org.xbill.DNS.hosts.HostsFileParser = ERROR