pub struct MsgHdrInit<'addr, 'bufs, 'control> { /* private fields */ }Expand description
Configuration of a recvmsg(2) system call with initialized buffers.
This wraps msghdr on Unix and WSAMSG on Windows and supports
fully initialized buffers.
For the control messages, please use MsgHdrInit::cmsg_hdr_vec to retrieve.
Implementations§
Source§impl<'addr, 'bufs, 'control> MsgHdrInit<'addr, 'bufs, 'control>
impl<'addr, 'bufs, 'control> MsgHdrInit<'addr, 'bufs, 'control>
Sourcepub fn new() -> MsgHdrInit<'addr, 'bufs, 'control>
pub fn new() -> MsgHdrInit<'addr, 'bufs, 'control>
Create a new MsgHdrInit with all empty/zero fields.
Sourcepub fn with_addr(self, addr: &'addr mut SockAddr) -> Self
pub fn with_addr(self, addr: &'addr mut SockAddr) -> Self
Set the mutable address buffer to store the source address.
Corresponds to setting msg_name and msg_namelen on Unix and name
and namelen on Windows.
Sourcepub fn with_buffers(self, buf_list: &'bufs mut [IoSliceMut<'_>]) -> Self
pub fn with_buffers(self, buf_list: &'bufs mut [IoSliceMut<'_>]) -> Self
Set the mutable array of buffers for receiving the message.
Corresponds to setting msg_iov and msg_iovlen on Unix and lpBuffers
and dwBufferCount on Windows.
Sourcepub fn with_control(self, buf: &'control mut [u8]) -> Self
pub fn with_control(self, buf: &'control mut [u8]) -> Self
Set the mutable control buffer of the message.
Corresponds to setting msg_control and msg_controllen on Unix and
Control on Windows.
Sourcepub fn cmsg_hdr_vec(&self) -> Vec<CMsgHdr<'_>>
pub fn cmsg_hdr_vec(&self) -> Vec<CMsgHdr<'_>>
Returns the list of control message headers in the message.
This decodes the control messages inside the ancillary data buffer.
Sourcepub fn get_addr(&self) -> Option<&SockAddr>
pub fn get_addr(&self) -> Option<&SockAddr>
Returns the optional source address in the msg.
This is a convenient method to access the address passed in Self::with_addr