From d48dbeb07b1040d4f401f2cdfc7722f4872bcb91 Mon Sep 17 00:00:00 2001 From: Zeyla Hellyer Date: Tue, 13 Jun 2017 09:42:22 -0700 Subject: Only set shard timeout after a READY is received --- src/gateway/shard.rs | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) (limited to 'src') diff --git a/src/gateway/shard.rs b/src/gateway/shard.rs index 2dcdf38..44ce833 100644 --- a/src/gateway/shard.rs +++ b/src/gateway/shard.rs @@ -143,6 +143,8 @@ impl Shard { let event = client.recv_json(GatewayEvent::decode)?; let (ready, sequence) = prep::parse_ready(event, &mut client, &identification)?; + set_client_timeout(&mut client)?; + Ok((feature_voice! {{ let (tx, rx) = mpsc::channel(); @@ -848,12 +850,14 @@ fn connect(base_url: &str) -> Result { let url = prep::build_gateway_url(base_url)?; let client = ClientBuilder::from_url(&url).connect_secure(None)?; + Ok(client) +} + +fn set_client_timeout(client: &mut WsClient) -> Result<()> { let timeout = StdDuration::from_millis(250); - { - let stream = client.stream_ref().as_tcp(); - stream.set_read_timeout(Some(timeout))?; - } + let stream = client.stream_ref().as_tcp(); + stream.set_read_timeout(Some(timeout))?; - Ok(client) + Ok(()) } -- cgit v1.2.3