diff options
author | Zach Reizner <zachr@google.com> | 2020-01-31 17:17:32 -0800 |
---|---|---|
committer | Commit Bot <commit-bot@chromium.org> | 2020-02-06 21:56:37 +0000 |
commit | 787c84b51b29c0715c6d3e73aca0148b6b112440 (patch) | |
tree | 182364448e8b47f70fb74131502043361daca3b8 /sys_util/src/sock_ctrl_msg.rs | |
parent | 4441c01124a30b7037267fdc74aeee4b6eff111a (diff) | |
download | crosvm-787c84b51b29c0715c6d3e73aca0148b6b112440.tar crosvm-787c84b51b29c0715c6d3e73aca0148b6b112440.tar.gz crosvm-787c84b51b29c0715c6d3e73aca0148b6b112440.tar.bz2 crosvm-787c84b51b29c0715c6d3e73aca0148b6b112440.tar.lz crosvm-787c84b51b29c0715c6d3e73aca0148b6b112440.tar.xz crosvm-787c84b51b29c0715c6d3e73aca0148b6b112440.tar.zst crosvm-787c84b51b29c0715c6d3e73aca0148b6b112440.zip |
sys_util: recv entire UnixSeqpacket packets into Vec
This change adds the `recv_*_vec` suite of methods for getting an entire packet into a `Vec` without needing to know the packet size through some other means. TEST=cargo test -p sys_util -p msg_socket BUG=None Change-Id: Ia4f931ccb91f6de6ee2103387fd95dfad3d3d38b Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/crosvm/+/2034025 Commit-Queue: Zach Reizner <zachr@chromium.org> Tested-by: Zach Reizner <zachr@chromium.org> Tested-by: kokoro <noreply+kokoro@google.com> Auto-Submit: Zach Reizner <zachr@chromium.org> Reviewed-by: Daniel Verkamp <dverkamp@chromium.org> Reviewed-by: Stephen Barber <smbarber@chromium.org>
Diffstat (limited to 'sys_util/src/sock_ctrl_msg.rs')
-rw-r--r-- | sys_util/src/sock_ctrl_msg.rs | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/sys_util/src/sock_ctrl_msg.rs b/sys_util/src/sock_ctrl_msg.rs index 13b9b0c..d4b953b 100644 --- a/sys_util/src/sock_ctrl_msg.rs +++ b/sys_util/src/sock_ctrl_msg.rs @@ -213,6 +213,9 @@ fn raw_recvmsg(fd: RawFd, in_data: &mut [u8], in_fds: &mut [RawFd]) -> Result<(u Ok((total_read as usize, in_fds_count)) } +/// The maximum number of FDs that can be sent in a single send. +pub const SCM_SOCKET_MAX_FD_COUNT: usize = 253; + /// Trait for file descriptors can send and receive socket control messages via `sendmsg` and /// `recvmsg`. pub trait ScmSocket { @@ -292,6 +295,7 @@ impl ScmSocket for UnixStream { self.as_raw_fd() } } + impl ScmSocket for UnixSeqpacket { fn socket_fd(&self) -> RawFd { self.as_raw_fd() |