in src/vtok_rpc/src/proto.rs [162:186]
fn set_write_timeout(&self, timeout: Option<Duration>) -> IoResult<()> {
let tv = match timeout {
Some(dur) => libc::timeval {
tv_sec: dur.as_secs() as i64,
tv_usec: dur.subsec_micros() as i64,
},
None => libc::timeval {
tv_sec: 0,
tv_usec: 0,
},
};
let rc = unsafe {
libc::setsockopt(
self.as_raw_fd(),
libc::SOL_SOCKET,
libc::SO_SNDTIMEO,
&tv as *const _ as *const libc::c_void,
std::mem::size_of::<libc::timeval>() as u32,
)
};
if rc != 0 {
return Err(IoError::last_os_error());
}
Ok(())
}