Skip to main content

UEventSocket

Struct UEventSocket 

Source
pub struct UEventSocket { /* private fields */ }
Expand description

Socket NETLINK_KOBJECT_UEVENT recevant les notifications de hotplug.

Drop ferme le FD via [OwnedFd]. CLOEXEC est toujours activé.

Implementations§

Source§

impl UEventSocket

Source

pub fn as_fd(&self) -> BorrowedFd<'_>

Vue empruntée du FD sous-jacent.

Source

pub fn into_fd(self) -> OwnedFd

Consomme et restitue le OwnedFd.

Source

pub fn read<'b>(&self, buffer: &'b mut [u8]) -> Result<UEventMessage<'b>, Errno>

Lit un message uevent et le décode en place dans buffer.

Le [UEventMessage] retourné emprunte buffer : il reste valide tant que le buffer n’est pas réutilisé. Aucune allocation.

Authenticité. Le message est rejeté ([Errno::EPERM]) si l’adresse source n’est pas le kernel (nl_pid != 0) ou si, en mode USERSPACE, le crédential SCM_CREDENTIALS est absent ou n’a pas uid == 0.

§Errors
  • [Errno::EPERM] : message rejeté (source non authentique).
  • [Errno::EAGAIN] : socket NONBLOCK, aucun message disponible.
  • [Errno::EINTR] : interrompu (remonté tel quel, ADR-021 conv. 2).
  • [Errno::EBADMSG] : message indécodable (en-tête libudev corrompu).
  • [Errno::EMSGSIZE] : message tronqué (buffer trop petit).

Trait Implementations§

Source§

impl Debug for UEventSocket

Source§

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

Formats the value using the given formatter. 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.