From e0305c6533504bb7f02f917dfb4e6b64b67511e8 Mon Sep 17 00:00:00 2001 From: Zach Reizner Date: Thu, 1 Nov 2018 20:42:21 -0700 Subject: msg_socket: implement AsRawFd for UnixDatagram wrappers Change-Id: I0589c6b88b4922db422771dc5930ca3f00b91736 Reviewed-on: https://chromium-review.googlesource.com/1314209 Commit-Ready: ChromeOS CL Exonerator Bot Tested-by: Zach Reizner Reviewed-by: Jingkui Wang --- msg_socket/src/lib.rs | 26 +++++++++++++++++++++++++- 1 file changed, 25 insertions(+), 1 deletion(-) diff --git a/msg_socket/src/lib.rs b/msg_socket/src/lib.rs index e1a1b48..4b47400 100644 --- a/msg_socket/src/lib.rs +++ b/msg_socket/src/lib.rs @@ -13,7 +13,7 @@ mod msg_on_socket; use std::io::Result; use std::marker::PhantomData; -use std::os::unix::io::RawFd; +use std::os::unix::io::{AsRawFd, RawFd}; use std::os::unix::net::UnixDatagram; use sys_util::{Error as SysError, ScmSocket, UnlinkUnixDatagram}; @@ -117,24 +117,48 @@ impl AsRef for MsgSocket { } } +impl AsRawFd for MsgSocket { + fn as_raw_fd(&self) -> RawFd { + self.sock.as_raw_fd() + } +} + impl AsRef for UnlinkMsgSocket { fn as_ref(&self) -> &UnixDatagram { self.sock.as_ref() } } +impl AsRawFd for UnlinkMsgSocket { + fn as_raw_fd(&self) -> RawFd { + self.as_ref().as_raw_fd() + } +} + impl AsRef for Sender { fn as_ref(&self) -> &UnixDatagram { &self.sock } } +impl AsRawFd for Sender { + fn as_raw_fd(&self) -> RawFd { + self.sock.as_raw_fd() + } +} + impl AsRef for Receiver { fn as_ref(&self) -> &UnixDatagram { &self.sock } } +impl AsRawFd for Receiver { + fn as_raw_fd(&self) -> RawFd { + self.sock.as_raw_fd() + } +} + /// Types that could send a message. pub trait MsgSender: AsRef { fn send(&self, msg: &M) -> MsgResult<()> { -- cgit 1.4.1