Enum hickory_proto::op::response_code::ResponseCode
source · pub enum ResponseCode {
Show 21 variants
NoError,
FormErr,
ServFail,
NXDomain,
NotImp,
Refused,
YXDomain,
YXRRSet,
NXRRSet,
NotAuth,
NotZone,
BADVERS,
BADSIG,
BADKEY,
BADTIME,
BADMODE,
BADNAME,
BADALG,
BADTRUNC,
BADCOOKIE,
Unknown(u16),
}
Expand description
The status code of the response to a query.
RFC 1035, DOMAIN NAMES - IMPLEMENTATION AND SPECIFICATION, November 1987
RCODE Response code - this 4 bit field is set as part of
responses. The values have the following
interpretation:
0 No error condition
1 Format error - The name server was
unable to interpret the query.
2 Server failure - The name server was
unable to process this query due to a
problem with the name server.
3 Name Error - Meaningful only for
responses from an authoritative name
server, this code signifies that the
domain name referenced in the query does
not exist.
4 Not Implemented - The name server does
not support the requested kind of query.
5 Refused - The name server refuses to
perform the specified operation for
policy reasons. For example, a name
server may not wish to provide the
information to the particular requester,
or a name server may not wish to perform
a particular operation (e.g., zone
transfer) for particular data.
6-15 Reserved for future use.
Variants§
NoError
No Error RFC 1035
FormErr
Format Error RFC 1035
ServFail
Server Failure RFC 1035
NXDomain
Non-Existent Domain RFC 1035
NotImp
Not Implemented RFC 1035
Refused
Query Refused RFC 1035
YXDomain
Name Exists when it should not RFC 2136
YXRRSet
RR Set Exists when it should not RFC 2136
NXRRSet
RR Set that should exist does not RFC 2136
NotAuth
NotZone
Name not contained in zone RFC 2136
BADVERS
Bad OPT Version RFC 6891
BADSIG
TSIG Signature Failure RFC 8945
BADKEY
Key not recognized RFC 8945
BADTIME
Signature out of time window RFC 8945
BADMODE
Bad TKEY Mode RFC 2930
BADNAME
Duplicate key name RFC 2930
BADALG
Algorithm not supported RFC 2930
BADTRUNC
Bad Truncation RFC 4635
BADCOOKIE
Bad/missing server cookie draft-ietf-dnsop-cookies
Unknown(u16)
An unknown or unregistered response code was received.
Implementations§
source§impl ResponseCode
impl ResponseCode
sourcepub fn low(self) -> u8
pub fn low(self) -> u8
returns the lower 4 bits of the response code (for the original header portion of the code)
sourcepub fn from_low(low: u8) -> Self
pub fn from_low(low: u8) -> Self
DNS can not store the entire space of ResponseCodes in 4 bit space of the Header, this function allows for a initial value of the first 4 bits to be set.
After the EDNS is read, the entire ResponseCode (12 bits) can be reconstructed for the full ResponseCode.
Trait Implementations§
source§impl Clone for ResponseCode
impl Clone for ResponseCode
source§fn clone(&self) -> ResponseCode
fn clone(&self) -> ResponseCode
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read moresource§impl Debug for ResponseCode
impl Debug for ResponseCode
source§impl Default for ResponseCode
impl Default for ResponseCode
source§impl Display for ResponseCode
impl Display for ResponseCode
source§impl From<ResponseCode> for u16
impl From<ResponseCode> for u16
Convert from ResponseCode
to u16
use hickory_proto::op::response_code::ResponseCode;
let var: ResponseCode = From::from(0);
assert_eq!(ResponseCode::NoError, var);
let var: ResponseCode = 0.into();
assert_eq!(ResponseCode::NoError, var);
source§fn from(rt: ResponseCode) -> Self
fn from(rt: ResponseCode) -> Self
source§impl From<u16> for ResponseCode
impl From<u16> for ResponseCode
Convert from u16
to ResponseCode
use hickory_proto::op::response_code::ResponseCode;
let var: u16 = From::from(ResponseCode::NoError);
assert_eq!(0, var);
let var: u16 = ResponseCode::NoError.into();
assert_eq!(0, var);
source§impl Hash for ResponseCode
impl Hash for ResponseCode
source§impl PartialEq for ResponseCode
impl PartialEq for ResponseCode
source§impl PartialOrd for ResponseCode
impl PartialOrd for ResponseCode
impl Copy for ResponseCode
impl Eq for ResponseCode
impl StructuralPartialEq for ResponseCode
Auto Trait Implementations§
impl Freeze for ResponseCode
impl RefUnwindSafe for ResponseCode
impl Send for ResponseCode
impl Sync for ResponseCode
impl Unpin for ResponseCode
impl UnwindSafe for ResponseCode
Blanket Implementations§
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
source§default unsafe fn clone_to_uninit(&self, dst: *mut T)
default unsafe fn clone_to_uninit(&self, dst: *mut T)
clone_to_uninit
)source§impl<T> CloneToUninit for Twhere
T: Copy,
impl<T> CloneToUninit for Twhere
T: Copy,
source§unsafe fn clone_to_uninit(&self, dst: *mut T)
unsafe fn clone_to_uninit(&self, dst: *mut T)
clone_to_uninit
)source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key
and return true
if they are equal.