TestDnsServer Class — netty Architecture
Architecture documentation for the TestDnsServer class in TestDnsServer.java from the netty codebase.
Entity Profile
Dependency Diagram
graph TD 71489dd4_f2db_bc9c_dccb_68c8b965b92e["TestDnsServer"] 671a7057_027f_0237_34ae_461bd20152cd["TestDnsServer.java"] 71489dd4_f2db_bc9c_dccb_68c8b965b92e -->|defined in| 671a7057_027f_0237_34ae_461bd20152cd 02d13266_8909_ab53_2f40_b9a92fab0662["TestDnsServer()"] 71489dd4_f2db_bc9c_dccb_68c8b965b92e -->|method| 02d13266_8909_ab53_2f40_b9a92fab0662 f8c36079_ab33_c60d_6b32_52c7a080b447["start()"] 71489dd4_f2db_bc9c_dccb_68c8b965b92e -->|method| f8c36079_ab33_c60d_6b32_52c7a080b447 254ea3eb_1e86_43df_7d60_af73884bc23d["InetSocketAddress()"] 71489dd4_f2db_bc9c_dccb_68c8b965b92e -->|method| 254ea3eb_1e86_43df_7d60_af73884bc23d 212585fd_a17c_e040_64fc_8c2a9bf4950e["DnsMessage()"] 71489dd4_f2db_bc9c_dccb_68c8b965b92e -->|method| 212585fd_a17c_e040_64fc_8c2a9bf4950e 811f11bc_5f47_ec60_967f_060e233c7266["ResourceRecord()"] 71489dd4_f2db_bc9c_dccb_68c8b965b92e -->|method| 811f11bc_5f47_ec60_967f_060e233c7266
Relationship Graph
Source Code
resolver-dns/src/test/java/io/netty/resolver/dns/TestDnsServer.java lines 59–371
class TestDnsServer extends DnsServer {
private static final Map<String, byte[]> BYTES = new HashMap<String, byte[]>();
private static final String[] IPV6_ADDRESSES;
static {
BYTES.put("::1", new byte[]{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1});
BYTES.put("0:0:0:0:0:0:1:1", new byte[]{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1});
BYTES.put("0:0:0:0:0:1:1:1", new byte[]{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1});
BYTES.put("0:0:0:0:1:1:1:1", new byte[]{0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 1});
BYTES.put("0:0:0:1:1:1:1:1", new byte[]{0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1});
BYTES.put("0:0:1:1:1:1:1:1", new byte[]{0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1});
BYTES.put("0:1:1:1:1:1:1:1", new byte[]{0, 0, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1});
BYTES.put("1:1:1:1:1:1:1:1", new byte[]{0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1});
IPV6_ADDRESSES = BYTES.keySet().toArray(new String[0]);
}
private final RecordStore store;
TestDnsServer(Set<String> domains) {
this(new TestRecordStore(domains));
}
TestDnsServer(RecordStore store) {
this.store = store;
}
@Override
public void start() throws IOException {
start(null);
}
/**
* Start the {@link TestDnsServer} but drop all {@link RecordType} queries
* and not send any response to these at all.
*/
public void start(final RecordType dropRecordType) throws IOException {
start(dropRecordType, new InetSocketAddress(NetUtil.LOCALHOST4, 0));
}
public void start(final RecordType dropRecordType, InetSocketAddress address) throws IOException {
UdpTransport transport = new UdpTransport(address.getHostName(), address.getPort());
setTransports(transport);
DatagramAcceptor acceptor = transport.getAcceptor();
acceptor.setHandler(new DnsProtocolHandler(this, store) {
@Override
public void sessionCreated(IoSession session) {
// USe our own codec to support AAAA testing
session.getFilterChain()
.addFirst("codec", new ProtocolCodecFilter(
new TestDnsProtocolUdpCodecFactory(dropRecordType)));
}
});
((DatagramSessionConfig) acceptor.getSessionConfig()).setReuseAddress(true);
// Start the listener
acceptor.bind();
}
public InetSocketAddress localAddress() {
return (InetSocketAddress) getTransports()[0].getAcceptor().getLocalAddress();
}
protected DnsMessage filterMessage(DnsMessage message) {
return message;
}
protected static ResourceRecord newARecord(String name, String ipAddress) {
return newAddressRecord(name, RecordType.A, ipAddress);
}
protected static ResourceRecord newNsRecord(String dnsname, String domainName) {
ResourceRecordModifier rm = new ResourceRecordModifier();
rm.setDnsClass(RecordClass.IN);
rm.setDnsName(dnsname);
rm.setDnsTtl(100);
rm.setDnsType(RecordType.NS);
rm.put(DnsAttribute.DOMAIN_NAME, domainName);
Source
Frequently Asked Questions
What is the TestDnsServer class?
TestDnsServer is a class in the netty codebase, defined in resolver-dns/src/test/java/io/netty/resolver/dns/TestDnsServer.java.
Where is TestDnsServer defined?
TestDnsServer is defined in resolver-dns/src/test/java/io/netty/resolver/dns/TestDnsServer.java at line 59.
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free