xarxa

Crates

git

Versions

default

Flavors

Skip to main content

Icmpv4Packet

Struct Icmpv4Packet 

Source
pub struct Icmpv4Packet<'a> { /* private fields */ }
Expand description

A read/write wrapper around an Internet Control Message Protocol version 4 packet buffer.

Implementations§

Source§

impl<'a> Packet<'a>

Source

pub const fn new_unchecked(buffer: &'a mut [u8]) -> Packet<'a>

Imbue a raw octet buffer with ICMPv4 packet structure.

Source

pub fn new_checked(buffer: &'a mut [u8]) -> Result<Packet<'a>>

Shorthand for a combination of new_unchecked and check_len.

Source

pub fn check_len(&self) -> Result<()>

Ensure that no accessor method will panic if called. Returns Err(Error) if the buffer is too short.

The result of this check is invalidated by calling set_header_len.

Source

pub fn msg_type(&self) -> Message

Return the message type field.

Source

pub fn msg_code(&self) -> u8

Return the message code field.

Source

pub fn checksum(&self) -> u16

Return the checksum field.

Source

pub fn echo_ident(&self) -> u16

Return the identifier field (for echo request and reply packets).

§Panics

This function may panic if this packet is not an echo request or reply packet.

Source

pub fn echo_seq_no(&self) -> u16

Return the sequence number field (for echo request and reply packets).

§Panics

This function may panic if this packet is not an echo request or reply packet.

Source

pub fn header_len(&self) -> usize

Return the header length. The result depends on the value of the message type field.

Source

pub fn verify_checksum(&self) -> bool

Validate the header checksum.

§Fuzzing

This function always returns true when fuzzing.

Source

pub fn data(&self) -> &[u8]

Return a pointer to the type-specific data.

Source

pub fn set_msg_type(&mut self, value: Message)

Set the message type field.

Source

pub fn set_msg_code(&mut self, value: u8)

Set the message code field.

Source

pub fn set_checksum(&mut self, value: u16)

Set the checksum field.

Source

pub fn set_echo_ident(&mut self, value: u16)

Set the identifier field (for echo request and reply packets).

§Panics

This function may panic if this packet is not an echo request or reply packet.

Source

pub fn set_echo_seq_no(&mut self, value: u16)

Set the sequence number field (for echo request and reply packets).

§Panics

This function may panic if this packet is not an echo request or reply packet.

Source

pub fn clear_unused(&mut self)

Zero the unused field of an error message (destination unreachable, time exceeded) header.

Source

pub fn fill_checksum(&mut self)

Compute and fill in the header checksum.

Source

pub fn data_mut(&mut self) -> &mut [u8]

Return a mutable pointer to the type-specific data.

Trait Implementations§

Source§

impl<'a> AsRef<[u8]> for Packet<'a>

Source§

fn as_ref(&self) -> &[u8]

Converts this type into a shared reference of the (usually inferred) input type.
Source§

impl<'a> Debug for Packet<'a>

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl<'a> Eq for Packet<'a>

Source§

impl<'a> PartialEq for Packet<'a>

Source§

fn eq(&self, other: &Packet<'a>) -> bool

Equality operator ==. Read more
1.0.0 (const: unstable) · Source§

fn ne(&self, other: &Rhs) -> bool

Inequality operator !=. Read more
Source§

impl<'a> StructuralPartialEq for Packet<'a>

Auto Trait Implementations§

§

impl<'a> !UnwindSafe for Packet<'a>

§

impl<'a> Freeze for Packet<'a>

§

impl<'a> RefUnwindSafe for Packet<'a>

§

impl<'a> Send for Packet<'a>

§

impl<'a> Sync for Packet<'a>

§

impl<'a> Unpin for Packet<'a>

§

impl<'a> UnsafeUnpin for Packet<'a>

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = !

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.