Home / Class/ DnsMessageUtil Class — netty Architecture

DnsMessageUtil Class — netty Architecture

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

Entity Profile

Dependency Diagram

graph TD
  712b890c_041c_4773_effc_f02cf18d95ab["DnsMessageUtil"]
  a6f9e4ba_b017_a575_296c_6c91d8cbe911["DnsMessageUtil.java"]
  712b890c_041c_4773_effc_f02cf18d95ab -->|defined in| a6f9e4ba_b017_a575_296c_6c91d8cbe911
  5eb63f58_19af_5714_2a8e_9451f6a3698f["StringBuilder()"]
  712b890c_041c_4773_effc_f02cf18d95ab -->|method| 5eb63f58_19af_5714_2a8e_9451f6a3698f
  b5f1d0c2_a6b8_d8bd_3130_058def8620d8["appendQueryHeader()"]
  712b890c_041c_4773_effc_f02cf18d95ab -->|method| b5f1d0c2_a6b8_d8bd_3130_058def8620d8
  b72bda91_399b_0def_b1b3_6121ee1f8fd1["appendResponseHeader()"]
  712b890c_041c_4773_effc_f02cf18d95ab -->|method| b72bda91_399b_0def_b1b3_6121ee1f8fd1
  cd830c92_5f93_ed57_3947_9a056627a9ed["appendAllRecords()"]
  712b890c_041c_4773_effc_f02cf18d95ab -->|method| cd830c92_5f93_ed57_3947_9a056627a9ed
  21da56ef_b4fa_4422_bda0_0f1ec45ba3b4["appendRecords()"]
  712b890c_041c_4773_effc_f02cf18d95ab -->|method| 21da56ef_b4fa_4422_bda0_0f1ec45ba3b4
  8dc59587_227c_942e_5028_ade5caa735cd["DnsQuery()"]
  712b890c_041c_4773_effc_f02cf18d95ab -->|method| 8dc59587_227c_942e_5028_ade5caa735cd
  653d5923_50fd_330d_32e5_6507eb45871d["decodeQuestions()"]
  712b890c_041c_4773_effc_f02cf18d95ab -->|method| 653d5923_50fd_330d_32e5_6507eb45871d
  2776da83_145d_0d0c_7295_37085f5080a6["decodeRecords()"]
  712b890c_041c_4773_effc_f02cf18d95ab -->|method| 2776da83_145d_0d0c_7295_37085f5080a6
  81c7302a_7757_476b_d624_a430b8ea1329["encodeDnsResponse()"]
  712b890c_041c_4773_effc_f02cf18d95ab -->|method| 81c7302a_7757_476b_d624_a430b8ea1329
  817828cc_8174_4b1f_8564_cd7dc7f940cb["encodeHeader()"]
  712b890c_041c_4773_effc_f02cf18d95ab -->|method| 817828cc_8174_4b1f_8564_cd7dc7f940cb
  f97d586d_b97e_569d_1b6f_90b1d9a573b3["encodeQuestions()"]
  712b890c_041c_4773_effc_f02cf18d95ab -->|method| f97d586d_b97e_569d_1b6f_90b1d9a573b3
  bd46a87a_bdb4_8b46_ffba_5d245fa425f0["encodeRecords()"]
  712b890c_041c_4773_effc_f02cf18d95ab -->|method| bd46a87a_bdb4_8b46_ffba_5d245fa425f0
  4c8ec9c4_a6ef_85f7_b91a_119a44e2907f["DnsMessageUtil()"]
  712b890c_041c_4773_effc_f02cf18d95ab -->|method| 4c8ec9c4_a6ef_85f7_b91a_119a44e2907f

Relationship Graph

Source Code

codec-dns/src/main/java/io/netty/handler/codec/dns/DnsMessageUtil.java lines 28–304

final class DnsMessageUtil {

    static StringBuilder appendQuery(StringBuilder buf, DnsQuery query) {
        appendQueryHeader(buf, query);
        appendAllRecords(buf, query);
        return buf;
    }

    static StringBuilder appendResponse(StringBuilder buf, DnsResponse response) {
        appendResponseHeader(buf, response);
        appendAllRecords(buf, response);
        return buf;
    }

    static StringBuilder appendRecordClass(StringBuilder buf, int dnsClass) {
        final String name;
        switch (dnsClass &= 0xFFFF) {
        case DnsRecord.CLASS_IN:
            name = "IN";
            break;
        case DnsRecord.CLASS_CSNET:
            name = "CSNET";
            break;
        case DnsRecord.CLASS_CHAOS:
            name = "CHAOS";
            break;
        case DnsRecord.CLASS_HESIOD:
            name = "HESIOD";
            break;
        case DnsRecord.CLASS_NONE:
            name = "NONE";
            break;
        case DnsRecord.CLASS_ANY:
            name = "ANY";
            break;
        default:
            name = null;
            break;
        }

        if (name != null) {
            buf.append(name);
        } else {
            buf.append("UNKNOWN(").append(dnsClass).append(')');
        }

        return buf;
    }

    private static void appendQueryHeader(StringBuilder buf, DnsQuery msg) {
        buf.append(StringUtil.simpleClassName(msg))
           .append('(');

        appendAddresses(buf, msg)
           .append("id: ")
           .append(msg.id())
           .append(", ")
           .append(msg.opCode());

        if (msg.isRecursionDesired()) {
            buf.append(", RD");
        }
        if (msg.z() != 0) {
            buf.append(", Z: ")
               .append(msg.z());
        }
        buf.append(')');
    }

    private static void appendResponseHeader(StringBuilder buf, DnsResponse msg) {
        buf.append(StringUtil.simpleClassName(msg))
           .append('(');

        appendAddresses(buf, msg)
           .append("id: ")
           .append(msg.id())
           .append(", ")
           .append(msg.opCode())
           .append(", ")
           .append(msg.code())
           .append(',');

Frequently Asked Questions

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

Analyze Your Own Codebase

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

Try Supermodel Free