Struct pnet_packet::dhcp::MutableDhcpPacket
source · pub struct MutableDhcpPacket<'p> { /* private fields */ }
Expand description
A structure enabling manipulation of on the wire packets
Implementations§
source§impl<'a> MutableDhcpPacket<'a>
impl<'a> MutableDhcpPacket<'a>
sourcepub fn new<'p>(packet: &'p mut [u8]) -> Option<MutableDhcpPacket<'p>>
pub fn new<'p>(packet: &'p mut [u8]) -> Option<MutableDhcpPacket<'p>>
Constructs a new MutableDhcpPacket. If the provided buffer is less than the minimum required packet size, this will return None.
sourcepub fn owned(packet: Vec<u8>) -> Option<MutableDhcpPacket<'static>>
pub fn owned(packet: Vec<u8>) -> Option<MutableDhcpPacket<'static>>
Constructs a new MutableDhcpPacket. If the provided buffer is less than the minimum required packet size, this will return None. With this constructor the MutableDhcpPacket will own its own data and the underlying buffer will be dropped when the MutableDhcpPacket is.
sourcepub fn to_immutable<'p>(&'p self) -> DhcpPacket<'p>
pub fn to_immutable<'p>(&'p self) -> DhcpPacket<'p>
Maps from a MutableDhcpPacket to a DhcpPacket
sourcepub fn consume_to_immutable(self) -> DhcpPacket<'a>
pub fn consume_to_immutable(self) -> DhcpPacket<'a>
Maps from a MutableDhcpPacket to a DhcpPacket while consuming the source
sourcepub const fn minimum_packet_size() -> usize
pub const fn minimum_packet_size() -> usize
The minimum size (in bytes) a packet of this type can be. It’s based on the total size of the fixed-size fields.
sourcepub fn packet_size(_packet: &Dhcp) -> usize
pub fn packet_size(_packet: &Dhcp) -> usize
The size (in bytes) of a Dhcp instance when converted into a byte-array
sourcepub fn get_op(&self) -> DhcpOperation
pub fn get_op(&self) -> DhcpOperation
Get the value of the op field
sourcepub fn get_htype(&self) -> DhcpHardwareType
pub fn get_htype(&self) -> DhcpHardwareType
Get the value of the htype field
sourcepub fn get_xid(&self) -> u32be
pub fn get_xid(&self) -> u32be
Get the xid field. This field is always stored big-endian within the struct, but this accessor returns host order.
sourcepub fn get_secs(&self) -> u16be
pub fn get_secs(&self) -> u16be
Get the secs field. This field is always stored big-endian within the struct, but this accessor returns host order.
sourcepub fn get_flags(&self) -> u16be
pub fn get_flags(&self) -> u16be
Get the flags field. This field is always stored big-endian within the struct, but this accessor returns host order.
sourcepub fn get_ciaddr(&self) -> Ipv4Addr
pub fn get_ciaddr(&self) -> Ipv4Addr
Get the value of the ciaddr field
sourcepub fn get_yiaddr(&self) -> Ipv4Addr
pub fn get_yiaddr(&self) -> Ipv4Addr
Get the value of the yiaddr field
sourcepub fn get_siaddr(&self) -> Ipv4Addr
pub fn get_siaddr(&self) -> Ipv4Addr
Get the value of the siaddr field
sourcepub fn get_giaddr(&self) -> Ipv4Addr
pub fn get_giaddr(&self) -> Ipv4Addr
Get the value of the giaddr field
sourcepub fn get_chaddr(&self) -> MacAddr
pub fn get_chaddr(&self) -> MacAddr
Get the value of the chaddr field
sourcepub fn get_chaddr_pad_raw(&self) -> &[u8] ⓘ
pub fn get_chaddr_pad_raw(&self) -> &[u8] ⓘ
Get the raw &u8 value of the chaddr_pad field, without copying
sourcepub fn get_chaddr_pad(&self) -> Vec<u8>
pub fn get_chaddr_pad(&self) -> Vec<u8>
Get the value of the chaddr_pad field (copies contents)
sourcepub fn get_sname_raw(&self) -> &[u8] ⓘ
pub fn get_sname_raw(&self) -> &[u8] ⓘ
Get the raw &u8 value of the sname field, without copying
sourcepub fn get_file_raw(&self) -> &[u8] ⓘ
pub fn get_file_raw(&self) -> &[u8] ⓘ
Get the raw &u8 value of the file field, without copying
sourcepub fn set_op(&mut self, val: DhcpOperation)
pub fn set_op(&mut self, val: DhcpOperation)
Set the value of the op field.
sourcepub fn set_htype(&mut self, val: DhcpHardwareType)
pub fn set_htype(&mut self, val: DhcpHardwareType)
Set the value of the htype field.
sourcepub fn set_xid(&mut self, val: u32be)
pub fn set_xid(&mut self, val: u32be)
Set the xid field. This field is always stored big-endian within the struct, but this mutator wants host order.
sourcepub fn set_secs(&mut self, val: u16be)
pub fn set_secs(&mut self, val: u16be)
Set the secs field. This field is always stored big-endian within the struct, but this mutator wants host order.
sourcepub fn set_flags(&mut self, val: u16be)
pub fn set_flags(&mut self, val: u16be)
Set the flags field. This field is always stored big-endian within the struct, but this mutator wants host order.
sourcepub fn set_ciaddr(&mut self, val: Ipv4Addr)
pub fn set_ciaddr(&mut self, val: Ipv4Addr)
Set the value of the ciaddr field.
sourcepub fn set_yiaddr(&mut self, val: Ipv4Addr)
pub fn set_yiaddr(&mut self, val: Ipv4Addr)
Set the value of the yiaddr field.
sourcepub fn set_siaddr(&mut self, val: Ipv4Addr)
pub fn set_siaddr(&mut self, val: Ipv4Addr)
Set the value of the siaddr field.
sourcepub fn set_giaddr(&mut self, val: Ipv4Addr)
pub fn set_giaddr(&mut self, val: Ipv4Addr)
Set the value of the giaddr field.
sourcepub fn set_chaddr(&mut self, val: MacAddr)
pub fn set_chaddr(&mut self, val: MacAddr)
Set the value of the chaddr field.
sourcepub fn get_chaddr_pad_raw_mut(&mut self) -> &mut [u8] ⓘ
pub fn get_chaddr_pad_raw_mut(&mut self) -> &mut [u8] ⓘ
Get the raw &mut u8 value of the chaddr_pad field, without copying
sourcepub fn set_chaddr_pad(&mut self, vals: &[u8])
pub fn set_chaddr_pad(&mut self, vals: &[u8])
Set the value of the chaddr_pad field (copies contents)
sourcepub fn get_sname_raw_mut(&mut self) -> &mut [u8] ⓘ
pub fn get_sname_raw_mut(&mut self) -> &mut [u8] ⓘ
Get the raw &mut u8 value of the sname field, without copying
sourcepub fn get_file_raw_mut(&mut self) -> &mut [u8] ⓘ
pub fn get_file_raw_mut(&mut self) -> &mut [u8] ⓘ
Get the raw &mut u8 value of the file field, without copying
sourcepub fn set_options(&mut self, vals: &[u8])
pub fn set_options(&mut self, vals: &[u8])
Set the value of the options field (copies contents)
Trait Implementations§
source§impl<'p> Debug for MutableDhcpPacket<'p>
impl<'p> Debug for MutableDhcpPacket<'p>
source§impl<'p> FromPacket for MutableDhcpPacket<'p>
impl<'p> FromPacket for MutableDhcpPacket<'p>
source§impl<'a> MutablePacket for MutableDhcpPacket<'a>
impl<'a> MutablePacket for MutableDhcpPacket<'a>
source§fn packet_mut<'p>(&'p mut self) -> &'p mut [u8] ⓘ
fn packet_mut<'p>(&'p mut self) -> &'p mut [u8] ⓘ
source§fn payload_mut<'p>(&'p mut self) -> &'p mut [u8] ⓘ
fn payload_mut<'p>(&'p mut self) -> &'p mut [u8] ⓘ
source§fn clone_from<T>(&mut self, other: &T)where
T: Packet,
fn clone_from<T>(&mut self, other: &T)where
T: Packet,
source§impl<'a> Packet for MutableDhcpPacket<'a>
impl<'a> Packet for MutableDhcpPacket<'a>
source§impl<'a> PacketSize for MutableDhcpPacket<'a>
impl<'a> PacketSize for MutableDhcpPacket<'a>
source§fn packet_size(&self) -> usize
fn packet_size(&self) -> usize
source§impl<'p> PartialEq for MutableDhcpPacket<'p>
impl<'p> PartialEq for MutableDhcpPacket<'p>
source§fn eq(&self, other: &MutableDhcpPacket<'p>) -> bool
fn eq(&self, other: &MutableDhcpPacket<'p>) -> bool
self
and other
values to be equal, and is used
by ==
.