aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/client/gateway/shard.rs7
1 files changed, 7 insertions, 0 deletions
diff --git a/src/client/gateway/shard.rs b/src/client/gateway/shard.rs
index ecf5c89..0b2b35f 100644
--- a/src/client/gateway/shard.rs
+++ b/src/client/gateway/shard.rs
@@ -12,6 +12,7 @@ use super::{GatewayError, GatewayStatus, prep};
use time;
use websocket::client::{Client as WsClient, Sender, Receiver};
use websocket::message::Message as WsMessage;
+use websocket::result::WebSocketError;
use websocket::stream::WebSocketStream;
use websocket::ws::sender::Sender as WsSender;
use ::constants::OpCode;
@@ -410,6 +411,12 @@ impl Shard {
self.reconnect(receiver).map(|(ev, rec)| Some((ev, Some(rec))))
},
Err(Error::WebSocket(why)) => {
+ if let WebSocketError::NoDataAvailable = why {
+ if self.heartbeat_instants.1.is_none() {
+ return Ok(None);
+ }
+ }
+
warn!("Websocket error: {:?}", why);
info!("Will attempt to reconnect or resume");