Home / Class/ DatagramDnsResponseDecoder Class — netty Architecture

DatagramDnsResponseDecoder Class — netty Architecture

Architecture documentation for the DatagramDnsResponseDecoder class in DatagramDnsResponseDecoder.java from the netty codebase.

Entity Profile

Dependency Diagram

graph TD
  d7361acd_3b79_3a41_527e_c649ad7f6190["DatagramDnsResponseDecoder"]
  fad1dfa7_dcbb_8912_7f15_cd0c246c776a["DatagramDnsResponseDecoder.java"]
  d7361acd_3b79_3a41_527e_c649ad7f6190 -->|defined in| fad1dfa7_dcbb_8912_7f15_cd0c246c776a
  752a9881_54dd_2c12_a279_995b70b704b6["DatagramDnsResponseDecoder()"]
  d7361acd_3b79_3a41_527e_c649ad7f6190 -->|method| 752a9881_54dd_2c12_a279_995b70b704b6
  ad9716e3_171f_aff5_cbe1_d4d8d19dcdfa["decode()"]
  d7361acd_3b79_3a41_527e_c649ad7f6190 -->|method| ad9716e3_171f_aff5_cbe1_d4d8d19dcdfa
  578562bb_5af0_f511_2338_611ca9ca9cd1["DnsResponse()"]
  d7361acd_3b79_3a41_527e_c649ad7f6190 -->|method| 578562bb_5af0_f511_2338_611ca9ca9cd1

Relationship Graph

Source Code

codec-dns/src/main/java/io/netty/handler/codec/dns/DatagramDnsResponseDecoder.java lines 30–68

@ChannelHandler.Sharable
public class DatagramDnsResponseDecoder extends MessageToMessageDecoder<DatagramPacket> {

    private final DnsResponseDecoder<InetSocketAddress> responseDecoder;

    /**
     * Creates a new decoder with {@linkplain DnsRecordDecoder#DEFAULT the default record decoder}.
     */
    public DatagramDnsResponseDecoder() {
        this(DnsRecordDecoder.DEFAULT);
    }

    /**
     * Creates a new decoder with the specified {@code recordDecoder}.
     */
    public DatagramDnsResponseDecoder(DnsRecordDecoder recordDecoder) {
        super(DatagramPacket.class);
        this.responseDecoder = new DnsResponseDecoder<InetSocketAddress>(recordDecoder) {
            @Override
            protected DnsResponse newResponse(InetSocketAddress sender, InetSocketAddress recipient,
                                              int id, DnsOpCode opCode, DnsResponseCode responseCode) {
                return new DatagramDnsResponse(sender, recipient, id, opCode, responseCode);
            }
        };
    }

    @Override
    protected void decode(ChannelHandlerContext ctx, DatagramPacket packet, List<Object> out) throws Exception {
        try {
            out.add(decodeResponse(ctx, packet));
        } catch (IndexOutOfBoundsException e) {
            throw new CorruptedFrameException("Unable to decode response", e);
        }
    }

    protected DnsResponse decodeResponse(ChannelHandlerContext ctx, DatagramPacket packet) throws Exception {
        return responseDecoder.decode(packet.sender(), packet.recipient(), packet.content());
    }
}

Frequently Asked Questions

What is the DatagramDnsResponseDecoder class?
DatagramDnsResponseDecoder is a class in the netty codebase, defined in codec-dns/src/main/java/io/netty/handler/codec/dns/DatagramDnsResponseDecoder.java.
Where is DatagramDnsResponseDecoder defined?
DatagramDnsResponseDecoder is defined in codec-dns/src/main/java/io/netty/handler/codec/dns/DatagramDnsResponseDecoder.java at line 30.

Analyze Your Own Codebase

Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.

Try Supermodel Free