use std::string::FromUtf8Error;
#[cfg(feature = "openssl")]
use openssl::error::ErrorStack as SslErrorStack;
#[cfg(not(feature = "openssl"))]
use error::dnssec_error::not_openssl::SslErrorStack;
use error::{DnsSecError, DnsSecErrorKind};
use rr::Name;
error_chain! {
types {
Error, ErrorKind, ChainErr, Result;
}
links {
DnsSecError, DnsSecErrorKind, DnsSec;
}
foreign_links {
FromUtf8Error, UTF8, "utf8 error";
SslErrorStack, SSL, "ssl error";
}
errors {
Message(message: &'static str) {
description(message)
display("{}", message)
}
InvalidToolchainName(t: String) {
description("invalid toolchain name")
display("invalid toolchain name: '{}'", t)
}
UnknownDnsClassValue(value: u16) {
description("dns class value unknown")
display("dns class value unknown: {}", value)
}
UnknownDnsClassStr(value: String) {
description("dns class string unknown")
display("dns class string unknown: {}", value)
}
UnknownRecordTypeValue(value: u16) {
description("record type value unknown")
display("record type value unknown: {}", value)
}
UnknownRecordTypeStr(value: String) {
description("record type string unknown")
display("record type string unknown: {}", value)
}
UnknownAlgorithmTypeValue(value: u8) {
description("algorithm type value unknown")
display("algorithm type value unknown: {}", value)
}
EdnsNameNotRoot(found: Name) {
description("edns resource record label must be the root label (.)")
display("edns resource record label must be the root label (.): {}", found)
}
DnsKeyProtocolNot3(value: u8) {
description("dns key value unknown, must be 3")
display("dns key value unknown, must be 3: {}", value)
}
UnrecognizedNsec3Flags(value: u8) {
description("nsec3 flags should be 0b0000000*")
display("nsec3 flags should be 0b0000000*: {:b}", value)
}
UnrecognizedLabelCode(value: u8) {
description("unrecognized label code")
display("unrecognized label code: {:b}", value)
}
IncorrectRDataLengthRead(read: usize, len: usize) {
description("incorrect rdata length read")
display("incorrect rdata length read: {} expected: {}", read, len)
}
}
}