-//! Module for LXC specific related seccomp handling.
+//! Module for LXC specific seccomp handling.
use std::convert::TryFrom;
use std::ffi::CString;
self.pid_fd = None;
}
- /// Returns None on EOF.
+ /// Returns false on EOF.
pub async fn recv(&mut self, socket: &SeqPacketSocket) -> Result<bool, Error> {
+ // prepare buffers:
self.reset();
unsafe {
self.cookie_buf.set_len(0);
}
+ // receive:
let mut fd_cmsg_buf = cmsg::buffer::<[RawFd; 2]>();
let (datalen, cmsglen) = socket
.recvmsg_vectored(&mut iovec, &mut fd_cmsg_buf)
self.set_len(datalen)?;
+ // iterate through control messages:
+
let cmsg = cmsg::iter(&fd_cmsg_buf[..cmsglen])
.next()
.ok_or_else(|| format_err!("missing file descriptors in message"))?;