aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/gateway/shard.rs26
1 files changed, 25 insertions, 1 deletions
diff --git a/src/gateway/shard.rs b/src/gateway/shard.rs
index aaebf14..72652b9 100644
--- a/src/gateway/shard.rs
+++ b/src/gateway/shard.rs
@@ -813,5 +813,29 @@ fn connect(base_url: &str) -> Result<(Sender<WebSocketStream>, Receiver<WebSocke
let response = WsClient::connect(url)?.send()?;
response.validate()?;
- Ok(response.begin().split())
+ let (mut sender, mut receiver) = response.begin().split();
+
+ let timeout = StdDuration::from_secs(90);
+
+ {
+ let mut ws_stream = receiver.get_mut().get_mut();
+ let stream = match *ws_stream {
+ WebSocketStream::Tcp(ref mut s) => s,
+ WebSocketStream::Ssl(ref mut s) => s.get_mut(),
+ };
+
+ stream.set_read_timeout(Some(timeout))?;
+ }
+
+ {
+ let mut ws_stream = sender.get_mut();
+ let stream = match *ws_stream {
+ WebSocketStream::Tcp(ref mut s) => s,
+ WebSocketStream::Ssl(ref mut s) => s.get_mut(),
+ };
+
+ stream.set_read_timeout(Some(timeout))?;
+ }
+
+ Ok((sender, receiver))
}