Expand description
DNS header parsing (RFC 1035 Section 4.1.1).
The DNS header is 12 bytes:
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
| ID |
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
|QR| Opcode |AA|TC|RD|RA| Z|AD|CD| RCODE |
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
| QDCOUNT |
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
| ANCOUNT |
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
| NSCOUNT |
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
| ARCOUNT |
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+Constants§
- DNS_
HEADER_ LEN - DNS header size in bytes.
Functions§
- build_
flags - Build a raw 16-bit flags value from individual components.
- read_aa
- AA flag: Authoritative Answer.
- read_ad
- AD flag: Authenticated Data (DNSSEC).
- read_
ancount - Answer count.
- read_
arcount - Additional count.
- read_cd
- CD flag: Checking Disabled (DNSSEC).
- read_id
- Read the DNS transaction ID.
- read_
nscount - Authority count.
- read_
opcode - Opcode (4 bits).
- read_
qdcount - Question count.
- read_qr
- QR flag: 0 = query, 1 = response.
- read_ra
- RA flag: Recursion Available.
- read_
rcode - RCODE (4 bits): Response code.
- read_rd
- RD flag: Recursion Desired.
- read_tc
- TC flag: Truncation.
- read_z
- Z flag (reserved).
- write_
aa - write_
ad - write_
ancount - write_
arcount - write_
cd - write_
id - Write the DNS transaction ID.
- write_
nscount - write_
opcode - write_
qdcount - write_
qr - write_
ra - write_
rcode - write_
rd - write_
tc - write_z