diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/client/mod.rs | 2 | ||||
| -rw-r--r-- | src/gateway/shard.rs | 12 |
2 files changed, 7 insertions, 7 deletions
diff --git a/src/client/mod.rs b/src/client/mod.rs index f35a400..8cab2d3 100644 --- a/src/client/mod.rs +++ b/src/client/mod.rs @@ -1251,7 +1251,7 @@ fn boot_shard(info: &BootInfo) -> Result<Shard> { // // After three attempts, start re-retrieving the gateway URL. Before that, // use the cached one. - for attempt_number in 1..11u64 { + for attempt_number in 1..3u64 { // If we've tried over 3 times so far, get a new gateway URL. // // If doing so fails, count this as a boot attempt. diff --git a/src/gateway/shard.rs b/src/gateway/shard.rs index 9c3403c..cb2462f 100644 --- a/src/gateway/shard.rs +++ b/src/gateway/shard.rs @@ -767,13 +767,13 @@ impl Shard { if !self.last_heartbeat_acknowledged { debug!("[Shard {:?}] Last heartbeat not acknowledged; re-connecting", self.shard_info); - if let Err(why) = self.autoreconnect() { + return self.reconnect().map_err(|why| { warn!("[Shard {:?}] Err auto-reconnecting from heartbeat check: {:?}", self.shard_info, why); - } - return Ok(()); + why + }) } // Otherwise, we're good to heartbeat. @@ -884,6 +884,7 @@ impl Shard { fn reset(&mut self) { self.heartbeat_instants = (Some(Instant::now()), None); + self.heartbeat_interval = None; self.last_heartbeat_acknowledged = true; self.stage = ConnectionStage::Disconnected; self.seq = 0; @@ -930,10 +931,9 @@ fn connect(base_url: &str) -> Result<WsClient> { } 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))?; + stream.set_read_timeout(Some(StdDuration::from_millis(100)))?; + stream.set_write_timeout(Some(StdDuration::from_secs(5)))?; Ok(()) } |