Struct RawSocket

Source
pub struct RawSocket(/* private fields */);
Expand description

Sends and receives messages over a SOCK_RAW.

Implementations§

Source§

impl RawSocket

Source

pub fn new() -> Result<RawSocket>

Returns a new RawSocket for sending and receiving messages on IPPROTO_ICMP over a SOCK_RAW. Currently only supports IPv4. TODO: use libc::IPPROTO* when the const becomes available, and add some config for IPv4/IPv6.

Source

pub fn fd(&self) -> c_int

Returns the socket’s underlying file descriptor.

Source

pub fn set_nonblocking(&self, nonblocking: bool) -> Result<()>

Sets the socket to non-blocking mode so that reads return immediately.

Source

pub fn send_to(&self, buf: &[u8], dst: &SocketAddr) -> Result<usize>

Sends a set of bytes over the socket and returns the number of bytes written.

Source

pub fn recv_from(&self, buf: &mut [u8]) -> Result<usize>

Reads the next available packet into the buffer and returns the number of bytes read. The packet is completely consumed, even if it is only partially read.

Trait Implementations§

Source§

impl Drop for RawSocket

Source§

fn drop(&mut self)

Executes the destructor for this type. Read more

Auto Trait Implementations§

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 = Infallible

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.