Skip to content

Commit 0e4bb81

Browse files
committed
- Added more logging, removed printing of exceptions
- RecordDecoderFactory throws DecoderException now in constructor
1 parent 17e3bb7 commit 0e4bb81

File tree

4 files changed

+22
-3
lines changed

4 files changed

+22
-3
lines changed

codec-dns/src/main/java/io/netty/handler/dns/DnsCallback.java

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,8 @@
2222
import io.netty.handler.codec.dns.Question;
2323
import io.netty.handler.codec.dns.Resource;
2424
import io.netty.handler.dns.decoder.RecordDecoderFactory;
25+
import io.netty.util.internal.logging.InternalLogger;
26+
import io.netty.util.internal.logging.InternalLoggerFactory;
2527

2628
import java.util.ArrayList;
2729
import java.util.HashMap;
@@ -52,6 +54,7 @@
5254
*/
5355
public class DnsCallback<T extends List<?>> implements Callable<T> {
5456

57+
private static final InternalLogger logger = InternalLoggerFactory.getInstance(DnsCallback.class);
5558
private static final List<Object> DEFAULT = new ArrayList<Object>();
5659
private static final Map<Integer, DnsCallback<?>> callbacks = new HashMap<Integer, DnsCallback<?>>();
5760

@@ -190,7 +193,11 @@ private void nextDns() {
190193
channel.write(queries[i]).sync();
191194
}
192195
} catch (Exception e) {
193-
e.printStackTrace();
196+
StringBuilder string = new StringBuilder();
197+
for (int i = 0; i < dnsServerAddress.length; i++) {
198+
string.append(dnsServerAddress[i]).append(".");
199+
}
200+
logger.error("Failed to write to next DNS server in queue with address " + string.substring(0, string.length() - 1), e);
194201
result = null;
195202
}
196203
}

codec-dns/src/main/java/io/netty/handler/dns/DnsExchangeFactory.java

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -122,6 +122,11 @@ public static boolean validAddress(byte[] address) {
122122
return callback.call() != null;
123123
} catch (Exception e) {
124124
removeChannel(dnsServerChannels.get(address));
125+
StringBuilder string = new StringBuilder();
126+
for (int i = 0; i < address.length; i++) {
127+
string.append(address[i]).append(".");
128+
}
129+
logger.warn("Failed to add DNS server " + string.substring(0, string.length() - 1), e);
125130
return false;
126131
}
127132
}
@@ -476,6 +481,12 @@ protected static void removeChannel(Channel channel) {
476481
try {
477482
channel.close().sync();
478483
} catch (Exception e) {
484+
byte[] address = entry.getKey();
485+
StringBuilder string = new StringBuilder();
486+
for (int i = 0; i < address.length; i++) {
487+
string.append(address[i]).append(".");
488+
}
489+
logger.error("Could not close channel for address " + string.substring(0, string.length() - 1), e);
479490
e.printStackTrace();
480491
} finally {
481492
channel.eventLoop().shutdownGracefully();

codec-dns/src/main/java/io/netty/handler/dns/InboundDnsMessageHandler.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ public void exceptionCaught(ChannelHandlerContext ctx, Throwable cause) {
3838
DnsExchangeFactory.removeChannel(ctx.channel());
3939
return;
4040
}
41-
cause.printStackTrace();
41+
ctx.fireExceptionCaught(cause);
4242
}
4343

4444
/**

codec-dns/src/main/java/io/netty/handler/dns/decoder/RecordDecoderFactory.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515
*/
1616
package io.netty.handler.dns.decoder;
1717

18+
import io.netty.handler.codec.DecoderException;
1819
import io.netty.handler.codec.dns.DnsEntry;
1920
import io.netty.handler.codec.dns.DnsResponse;
2021
import io.netty.handler.codec.dns.Resource;
@@ -86,7 +87,7 @@ public RecordDecoderFactory(Map<Integer, RecordDecoder<?>> customDecoders) {
8687
*/
8788
public RecordDecoderFactory(boolean useDefaultDecoders, Map<Integer, RecordDecoder<?>> customDecoders) {
8889
if (!useDefaultDecoders && (customDecoders == null || customDecoders.isEmpty())) {
89-
throw new IllegalStateException("No decoders have been included to be used with this factory.");
90+
throw new DecoderException("No decoders have been included to be used with this factory.");
9091
}
9192
if (useDefaultDecoders) {
9293
decoders.put(DnsEntry.TYPE_A, new AddressDecoder(4));

0 commit comments

Comments
 (0)