aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/client/mod.rs2
-rw-r--r--src/gateway/shard.rs12
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(())
}