about summary refs log tree commit diff
path: root/src/libstd/io/net/tcp.rs
diff options
context:
space:
mode:
authorBrian Anderson <banderson@mozilla.com>2014-08-04 16:21:47 -0700
committerBrian Anderson <banderson@mozilla.com>2014-08-13 11:31:48 -0700
commitee10f3501c1df04a015a5331c8343792e519c7a7 (patch)
tree662384b040dcb8633d1a9157f7ff31ba1d2de452 /src/libstd/io/net/tcp.rs
parenta391934ba8fb99b999f9956e855316692612f1ab (diff)
downloadrust-ee10f3501c1df04a015a5331c8343792e519c7a7.tar.gz
rust-ee10f3501c1df04a015a5331c8343792e519c7a7.zip
std: Make connect_timeout return Err on zero duration
[breaking-change]
Diffstat (limited to 'src/libstd/io/net/tcp.rs')
-rw-r--r--src/libstd/io/net/tcp.rs10
1 files changed, 6 insertions, 4 deletions
diff --git a/src/libstd/io/net/tcp.rs b/src/libstd/io/net/tcp.rs
index 34ccf9e617a..6d03d4a8eed 100644
--- a/src/libstd/io/net/tcp.rs
+++ b/src/libstd/io/net/tcp.rs
@@ -27,6 +27,7 @@ use io::net::addrinfo::get_host_addresses;
 use io::net::ip::SocketAddr;
 use io::{IoError, ConnectionFailed, InvalidInput};
 use io::{Reader, Writer, Listener, Acceptor};
+use io::{standard_error, TimedOut};
 use from_str::FromStr;
 use kinds::Send;
 use option::{None, Some, Option};
@@ -102,13 +103,14 @@ impl TcpStream {
     /// Note that the `addr` argument may one day be split into a separate host
     /// and port, similar to the API seen in `connect`.
     ///
-    /// # Failure
-    ///
-    /// Fails on a `timeout` of zero or negative duration.
+    /// If a `timeout` with zero or negative duration is specified then
+    /// the function returns `Err`, with the error kind set to `TimedOut`.
     #[experimental = "the timeout argument may eventually change types"]
     pub fn connect_timeout(addr: SocketAddr,
                            timeout: Duration) -> IoResult<TcpStream> {
-        assert!(timeout > Duration::milliseconds(0));
+        if timeout <= Duration::milliseconds(0) {
+            return standard_error(TimedOut);
+        }
 
         let SocketAddr { ip, port } = addr;
         let addr = rtio::SocketAddr { ip: super::to_rtio(ip), port: port };