dns_parser_joe/
error.rs

1use std::str::Utf8Error;
2
3quick_error! {
4    /// Error parsing DNS packet
5    #[derive(Debug)]
6    pub enum Error {
7        BadPointer {
8            description("invalid compression pointer not pointing backwards \
9                         when parsing label")
10        }
11        HeaderTooShort {
12            description("packet is smaller than header size")
13        }
14        UnexpectedEOF {
15            description("packet is has incomplete data")
16        }
17        WrongRdataLength {
18            description("wrong (too short or too long) size of RDATA")
19        }
20        ReservedBitsAreNonZero {
21            description("packet has non-zero reserved bits")
22        }
23        UnknownLabelFormat {
24            description("label in domain name has unknown label format")
25        }
26        InvalidQueryType(code: u16) {
27            description("query type code is invalid")
28            display("query type {} is invalid", code)
29        }
30        InvalidQueryClass(code: u16) {
31            description("query class code is invalid")
32            display("query class {} is invalid", code)
33        }
34        InvalidType(code: u16) {
35            description("type code is invalid")
36            display("type {} is invalid", code)
37        }
38        InvalidClass(code: u16) {
39            description("class code is invalid")
40            display("class {} is invalid", code)
41        }
42        LabelIsNotAscii {
43            description("invalid characters encountered while reading label")
44        }
45        TxtDataIsNotUTF8(error: Utf8Error) {
46            description("invalid characters encountered while reading TXT")
47            display("{:?}", error)
48        }
49        WrongState {
50            description("parser is in the wrong state")
51        }
52        AdditionalOPT {
53            description("additional OPT record found")
54        }
55    }
56}