pub struct Packet<'a> {
pub questions: Vec<Question<'a>>,
pub answers: Vec<ResourceRecord<'a>>,
pub name_servers: Vec<ResourceRecord<'a>>,
pub additional_records: Vec<ResourceRecord<'a>>,
/* private fields */
}
Expand description
Represents a DNS message packet
When working with EDNS packets, use Packet::opt and Packet::opt_mut to add or access OPT packet information
Fields§
§questions: Vec<Question<'a>>
Questions section
answers: Vec<ResourceRecord<'a>>
Answers section
name_servers: Vec<ResourceRecord<'a>>
Name servers section
additional_records: Vec<ResourceRecord<'a>>
Aditional records section.
DO NOT use this field to add OPT record, use Packet::opt_mut
instead
Implementations§
Source§impl<'a> Packet<'a>
impl<'a> Packet<'a>
Sourcepub fn set_flags(&mut self, flags: PacketFlag)
pub fn set_flags(&mut self, flags: PacketFlag)
Set flags in the packet
Sourcepub fn remove_flags(&mut self, flags: PacketFlag)
pub fn remove_flags(&mut self, flags: PacketFlag)
Remove flags present in the packet
Sourcepub fn has_flags(&self, flags: PacketFlag) -> bool
pub fn has_flags(&self, flags: PacketFlag) -> bool
Check if the packet has flags set
Sourcepub fn rcode_mut(&mut self) -> &mut RCODE
pub fn rcode_mut(&mut self) -> &mut RCODE
Get a mutable reference for this packet RCODE information Warning, if the RCODE value is greater than 15 (4 bits), you MUST provide an OPT resource record through the Packet::opt_mut function
Sourcepub fn opcode_mut(&mut self) -> &mut OPCODE
pub fn opcode_mut(&mut self) -> &mut OPCODE
Get a mutable reference for this packet OPCODE information
Sourcepub fn opt_mut(&mut self) -> &mut Option<OPT<'a>>
pub fn opt_mut(&mut self) -> &mut Option<OPT<'a>>
Get a mutable reference for this packet OPT resource record.
Sourcepub fn into_reply(self) -> Self
pub fn into_reply(self) -> Self
Changes this packet into a reply packet by replacing its header
Sourcepub fn build_bytes_vec(&self) -> Result<Vec<u8>>
pub fn build_bytes_vec(&self) -> Result<Vec<u8>>
Creates a new Vec<u8>
and write the contents of this package in wire format
This call will allocate a Vec<u8>
of 900 bytes, which is enough for a jumbo UDP packet
Sourcepub fn build_bytes_vec_compressed(&self) -> Result<Vec<u8>>
pub fn build_bytes_vec_compressed(&self) -> Result<Vec<u8>>
Creates a new Vec<u8>
and write the contents of this package in wire format
with compression enabled
This call will allocate a Vec<u8>
of 900 bytes, which is enough for a jumbo UDP packet