From: Ian Jackson Date: Mon, 17 May 2021 13:55:31 +0000 (+0100) Subject: mgmtchannel: Change contained type to a TimedFdReader X-Git-Tag: otter-0.6.0~218 X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=commitdiff_plain;h=583619a727829ba10001b666ddeeb008d09ee173;p=otter.git mgmtchannel: Change contained type to a TimedFdReader This is in preparation for timeouts. Signed-off-by: Ian Jackson --- diff --git a/src/mgmtchannel.rs b/src/mgmtchannel.rs index f334412e..e245408a 100644 --- a/src/mgmtchannel.rs +++ b/src/mgmtchannel.rs @@ -35,8 +35,8 @@ impl From for MgmtChannelWriteError { } pub struct MgmtChannel { - pub read: FrameReader>, - pub write: FrameWriter>, + pub read: FrameReader, + pub write: FrameWriter, } impl Debug for MgmtChannel{ @@ -57,11 +57,13 @@ impl MgmtChannel { } #[throws(AE)] - pub fn new(conn: U) -> MgmtChannel { + pub fn new(conn: U) -> MgmtChannel + where U: IoTryClone + Read + Write + IntoRawFd + 'static, + { let read = conn.try_clone().context("dup the command stream")?; - let read = Box::new(read) as Box; + let read = TimedFdReader::new(read).context("set up timed reader")?; let read = FrameReader::new(read); - let write = Box::new(conn) as Box; + let write = TimedFdWriter::new(conn).context("set up timed writerr")?; let write = FrameWriter::new(write); MgmtChannel { read, write } }