mio_httpc/dns_parser/
structs.rs1use super::{Class, Header, Name, QueryClass, QueryType, RRData};
2
3#[derive(Debug)]
5pub struct Packet<'a> {
6 pub header: Header,
7 pub questions: Vec<Question<'a>>,
8 pub answers: Vec<ResourceRecord<'a>>,
9 pub nameservers: Vec<ResourceRecord<'a>>,
10 pub additional: Vec<ResourceRecord<'a>>,
11 pub opt: Option<OptRecord<'a>>,
17}
18
19#[derive(Debug)]
21pub struct Question<'a> {
22 pub qname: Name<'a>,
23 pub prefer_unicast: bool,
26 pub qtype: QueryType,
27 pub qclass: QueryClass,
28}
29
30#[derive(Debug)]
36pub struct ResourceRecord<'a> {
37 pub name: Name<'a>,
38 pub multicast_unique: bool,
42 pub cls: Class,
43 pub ttl: u32,
44 pub data: RRData<'a>,
45}
46
47#[derive(Debug)]
49pub struct OptRecord<'a> {
50 pub udp: u16,
51 pub extrcode: u8,
52 pub version: u8,
53 pub flags: u16,
54 pub data: RRData<'a>,
55}
56
57#[derive(Debug)]
58pub struct SoaRecord<'a> {
59 pub primary_ns: Name<'a>,
60 pub mailbox: Name<'a>,
61 pub serial: u32,
62 pub refresh: u32,
63 pub retry: u32,
64 pub expire: u32,
65 pub minimum_ttl: u32,
66}