pub struct MutableIcmpPacket<'a> { /* private fields */ }Expand description
Represents a mutable ICMP packet.
Implementations§
Source§impl<'a> MutableIcmpPacket<'a>
impl<'a> MutableIcmpPacket<'a>
Sourcepub fn new_unchecked(buffer: &'a mut [u8]) -> Self
pub fn new_unchecked(buffer: &'a mut [u8]) -> Self
Create a mutable ICMP packet without performing validation.
Sourcepub fn checksum_mode(&self) -> ChecksumMode
pub fn checksum_mode(&self) -> ChecksumMode
Returns the checksum recalculation mode.
Sourcepub fn set_checksum_mode(&mut self, mode: ChecksumMode)
pub fn set_checksum_mode(&mut self, mode: ChecksumMode)
Sets how checksum updates should be handled.
Sourcepub fn enable_auto_checksum(&mut self)
pub fn enable_auto_checksum(&mut self)
Enables automatic checksum recomputation.
Sourcepub fn disable_auto_checksum(&mut self)
pub fn disable_auto_checksum(&mut self)
Disables automatic checksum recomputation.
Sourcepub fn is_checksum_dirty(&self) -> bool
pub fn is_checksum_dirty(&self) -> bool
Returns true if the checksum needs to be recomputed.
Sourcepub fn mark_checksum_dirty(&mut self)
pub fn mark_checksum_dirty(&mut self)
Marks the checksum as dirty and recomputes it when automatic mode is enabled.
Sourcepub fn recompute_checksum(&mut self) -> Option<u16>
pub fn recompute_checksum(&mut self) -> Option<u16>
Recomputes the checksum for the current packet contents.
Sourcepub fn set_type(&mut self, icmp_type: IcmpType)
pub fn set_type(&mut self, icmp_type: IcmpType)
Sets the ICMP type field and marks the checksum as dirty.
Sourcepub fn set_code(&mut self, icmp_code: IcmpCode)
pub fn set_code(&mut self, icmp_code: IcmpCode)
Sets the ICMP code field and marks the checksum as dirty.
Sourcepub fn get_checksum(&self) -> u16
pub fn get_checksum(&self) -> u16
Returns the serialized checksum value.
Sourcepub fn set_checksum(&mut self, checksum: u16)
pub fn set_checksum(&mut self, checksum: u16)
Sets the serialized checksum value and clears the dirty flag.
Trait Implementations§
Source§impl<'a> MutablePacket<'a> for MutableIcmpPacket<'a>
impl<'a> MutablePacket<'a> for MutableIcmpPacket<'a>
Source§type Packet = IcmpPacket
type Packet = IcmpPacket
The immutable packet type associated with this mutable view.
Source§fn new(buffer: &'a mut [u8]) -> Option<Self>
fn new(buffer: &'a mut [u8]) -> Option<Self>
Construct a mutable packet from the provided buffer.
Source§fn packet_mut(&mut self) -> &mut [u8] ⓘ
fn packet_mut(&mut self) -> &mut [u8] ⓘ
Get a mutable view over the entire packet buffer.
Source§fn header_mut(&mut self) -> &mut [u8] ⓘ
fn header_mut(&mut self) -> &mut [u8] ⓘ
Get a mutable view over the serialized header bytes of the packet.
Source§fn payload_mut(&mut self) -> &mut [u8] ⓘ
fn payload_mut(&mut self) -> &mut [u8] ⓘ
Get a mutable view over the payload bytes of the packet.
Auto Trait Implementations§
impl<'a> Freeze for MutableIcmpPacket<'a>
impl<'a> RefUnwindSafe for MutableIcmpPacket<'a>
impl<'a> Send for MutableIcmpPacket<'a>
impl<'a> Sync for MutableIcmpPacket<'a>
impl<'a> Unpin for MutableIcmpPacket<'a>
impl<'a> !UnwindSafe for MutableIcmpPacket<'a>
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
Mutably borrows from an owned value. Read more