diff options
| author | Steven Fackler <sfackler@gmail.com> | 2017-07-04 23:46:24 -0700 |
|---|---|---|
| committer | Steven Fackler <sfackler@gmail.com> | 2017-07-06 19:35:49 -0700 |
| commit | 8c92da3c518111b28f0b5fb297ab719bf353cdc6 (patch) | |
| tree | e68b05e25cf9a0a16bd9d6e72d161f92b843beac /src/libstd/sys_common | |
| parent | ccf401f8f7847413ac43f38e3c86016becf67b07 (diff) | |
| download | rust-8c92da3c518111b28f0b5fb297ab719bf353cdc6.tar.gz rust-8c92da3c518111b28f0b5fb297ab719bf353cdc6.zip | |
Implement TcpStream::connect_timeout
This breaks the "single syscall rule", but it's really annoying to hand write and is pretty foundational.
Diffstat (limited to 'src/libstd/sys_common')
| -rw-r--r-- | src/libstd/sys_common/net.rs | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/src/libstd/sys_common/net.rs b/src/libstd/sys_common/net.rs index 809b728379d..5775dd4f1fc 100644 --- a/src/libstd/sys_common/net.rs +++ b/src/libstd/sys_common/net.rs @@ -215,6 +215,14 @@ impl TcpStream { Ok(TcpStream { inner: sock }) } + pub fn connect_timeout(addr: &SocketAddr, timeout: Duration) -> io::Result<TcpStream> { + init(); + + let sock = Socket::new(addr, c::SOCK_STREAM)?; + sock.connect_timeout(addr, timeout)?; + Ok(TcpStream { inner: sock }) + } + pub fn socket(&self) -> &Socket { &self.inner } pub fn into_socket(self) -> Socket { self.inner } |
