DnsResponseHandler Class — netty Architecture
Architecture documentation for the DnsResponseHandler class in DnsNameResolver.java from the netty codebase.
Entity Profile
Dependency Diagram
graph TD 8c108031_e3e7_14e2_222f_1bd939b4c08d["DnsResponseHandler"] 70b10ccf_a76d_33ba_22ef_90a5a10e8ac3["DnsNameResolver.java"] 8c108031_e3e7_14e2_222f_1bd939b4c08d -->|defined in| 70b10ccf_a76d_33ba_22ef_90a5a10e8ac3 34572130_4bd4_efe5_a414_ae71beb61f34["DnsResponseHandler()"] 8c108031_e3e7_14e2_222f_1bd939b4c08d -->|method| 34572130_4bd4_efe5_a414_ae71beb61f34 ad4283b4_8f41_0bad_f00a_e03157f269ed["isSharable()"] 8c108031_e3e7_14e2_222f_1bd939b4c08d -->|method| ad4283b4_8f41_0bad_f00a_e03157f269ed f073c95f_965a_fe6b_127f_a8bdf50d8068["channelRead()"] 8c108031_e3e7_14e2_222f_1bd939b4c08d -->|method| f073c95f_965a_fe6b_127f_a8bdf50d8068 5df947e5_dbe1_ae0b_ca52_864185a60ae4["exceptionCaught()"] 8c108031_e3e7_14e2_222f_1bd939b4c08d -->|method| 5df947e5_dbe1_ae0b_ca52_864185a60ae4
Relationship Graph
Source Code
resolver-dns/src/main/java/io/netty/resolver/dns/DnsNameResolver.java lines 1496–1541
private static final class DnsResponseHandler extends ChannelInboundHandlerAdapter {
private final DnsQueryContextManager queryContextManager;
DnsResponseHandler(DnsQueryContextManager queryContextManager) {
this.queryContextManager = queryContextManager;
}
@Override
public boolean isSharable() {
return true;
}
@Override
public void channelRead(ChannelHandlerContext ctx, Object msg) {
final Channel qCh = ctx.channel();
final DatagramDnsResponse res = (DatagramDnsResponse) msg;
final int queryId = res.id();
logger.debug("{} RECEIVED: UDP [{}: {}], {}", qCh, queryId, res.sender(), res);
final DnsQueryContext qCtx = queryContextManager.get(res.sender(), queryId);
if (qCtx == null) {
logger.debug("{} Received a DNS response with an unknown ID: UDP [{}: {}]",
qCh, queryId, res.sender());
res.release();
return;
} else if (qCtx.isDone()) {
logger.debug("{} Received a DNS response for a query that was timed out or cancelled: UDP [{}: {}]",
qCh, queryId, res.sender());
res.release();
return;
}
// The context will handle truncation itself.
qCtx.finishSuccess(res, res.isTruncated());
}
@Override
public void exceptionCaught(ChannelHandlerContext ctx, Throwable cause) {
if (cause instanceof CorruptedFrameException) {
logger.debug("{} Unable to decode DNS response: UDP", ctx.channel(), cause);
} else {
logger.warn("{} Unexpected exception: UDP", ctx.channel(), cause);
}
}
}
Source
Frequently Asked Questions
What is the DnsResponseHandler class?
DnsResponseHandler is a class in the netty codebase, defined in resolver-dns/src/main/java/io/netty/resolver/dns/DnsNameResolver.java.
Where is DnsResponseHandler defined?
DnsResponseHandler is defined in resolver-dns/src/main/java/io/netty/resolver/dns/DnsNameResolver.java at line 1496.
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free