aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorAustin Hellyer <[email protected]>2017-01-08 09:14:34 -0800
committerAustin Hellyer <[email protected]>2017-01-08 09:14:34 -0800
commit8ae1f1fa637f161e35315e8b1e5d9602b26e6dba (patch)
treeb86f304828946744538ac6a542a87b7eb1d121a0 /src
parentSlightly modify close resume logic (diff)
downloadserenity-8ae1f1fa637f161e35315e8b1e5d9602b26e6dba.tar.xz
serenity-8ae1f1fa637f161e35315e8b1e5d9602b26e6dba.zip
Add more shard logging
Diffstat (limited to 'src')
-rw-r--r--src/client/gateway/shard.rs38
1 files changed, 32 insertions, 6 deletions
diff --git a/src/client/gateway/shard.rs b/src/client/gateway/shard.rs
index 07eb7b1..e564538 100644
--- a/src/client/gateway/shard.rs
+++ b/src/client/gateway/shard.rs
@@ -355,7 +355,7 @@ impl Shard {
},
Some(4008) => warn!("Gateway ratelimited"),
Some(4010) => warn!("Sent invalid shard"),
- Some(4011) => warn!("Bot requires more shards"),
+ Some(4011) => error!("Bot requires more shards"),
Some(4006) | Some(4009) => {
info!("Invalid session");
@@ -371,14 +371,25 @@ impl Shard {
.unwrap_or(false);
if resume {
+ info!("Attempting to resume");
+
if let Some(session_id) = self.session_id.clone() {
match self.resume(session_id, receiver) {
- Ok((ev, rec)) => return Ok(Some((ev, Some(rec)))),
- Err(why) => debug!("Error resuming: {:?}", why),
+ Ok((ev, rec)) => {
+ info!("Resumed");
+
+ return Ok(Some((ev, Some(rec))));
+ },
+ Err(why) => {
+ warn!("Error resuming: {:?}", why);
+ info!("Falling back to reconnecting");
+ },
}
}
}
+ info!("Reconnecting");
+
self.reconnect(receiver).map(|(ev, rec)| Some((ev, Some(rec))))
},
Err(Error::WebSocket(WebSocketError::NoDataAvailable)) => Ok(None),
@@ -392,9 +403,18 @@ impl Shard {
//
// Otherwise, fallback to reconnecting.
if let Some(session_id) = self.session_id.clone() {
+ info!("Attempting to resume");
+
match self.resume(session_id, &mut receiver) {
- Ok((ev, rec)) => return Ok(Some((ev, Some(rec)))),
- Err(why) => info!("Error resuming: {:?}", why),
+ Ok((ev, rec)) => {
+ info!("Resumed");
+
+ return Ok(Some((ev, Some(rec))));
+ },
+ Err(why) => {
+ warn!("Error resuming: {:?}", why);
+ info!("Falling back to reconnecting");
+ },
}
}
@@ -423,6 +443,8 @@ impl Shard {
r.flush()?;
r.shutdown(Shutdown::Both)?;
+ debug!("Cleanly shutdown shard");
+
Ok(())
}
@@ -521,8 +543,12 @@ impl Shard {
return Ok((Event::Ready(ready), receiver_new));
}
+ let seconds = i.pow(2);
+
+ debug!("Exponentially backing off for {} seconds", seconds);
+
// Exponentially back off.
- thread::sleep(StdDuration::from_secs(i.pow(2)));
+ thread::sleep(StdDuration::from_secs(seconds));
}
// Reconnecting failed; just return an error instead.