diff options
| author | Austin Hellyer <[email protected]> | 2017-01-08 09:14:34 -0800 |
|---|---|---|
| committer | Austin Hellyer <[email protected]> | 2017-01-08 09:14:34 -0800 |
| commit | 8ae1f1fa637f161e35315e8b1e5d9602b26e6dba (patch) | |
| tree | b86f304828946744538ac6a542a87b7eb1d121a0 /src | |
| parent | Slightly modify close resume logic (diff) | |
| download | serenity-8ae1f1fa637f161e35315e8b1e5d9602b26e6dba.tar.xz serenity-8ae1f1fa637f161e35315e8b1e5d9602b26e6dba.zip | |
Add more shard logging
Diffstat (limited to 'src')
| -rw-r--r-- | src/client/gateway/shard.rs | 38 |
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. |