diff options
| author | bors <bors@rust-lang.org> | 2017-07-07 03:43:14 +0000 |
|---|---|---|
| committer | bors <bors@rust-lang.org> | 2017-07-07 03:43:14 +0000 |
| commit | 54e3fe7af0c448858fb1ac9c2d48da8bc4f6f1f8 (patch) | |
| tree | 764f8b3e0db4fcb873e062698d1e8eaf5dd6b1f4 /src/libstd/sys_common | |
| parent | b80b659d674fa19b2b48142e4f7974544bc8d5f6 (diff) | |
| parent | 8c92da3c518111b28f0b5fb297ab719bf353cdc6 (diff) | |
| download | rust-54e3fe7af0c448858fb1ac9c2d48da8bc4f6f1f8.tar.gz rust-54e3fe7af0c448858fb1ac9c2d48da8bc4f6f1f8.zip | |
Auto merge of #43062 - sfackler:connect-timeout, r=alexcrichton
Implement TcpStream::connect_timeout This breaks the "single syscall rule", but it's really annoying to hand write and is pretty foundational. r? @alexcrichton cc @rust-lang/libs
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 } |
