1
0
Fork 0
mirror of https://github.com/diamondburned/arikawa.git synced 2024-11-30 10:43:30 +00:00

Gateway: Prevent heartbeat reconnecting twice

This commit is contained in:
diamondburned 2020-12-31 23:01:38 -08:00
parent 2f6ab0d451
commit 7b67a98405

View file

@ -360,9 +360,15 @@ func (g *Gateway) start(ctx context.Context) error {
g.waitGroup.Done() // mark so Close() can exit.
wsutil.WSDebug("Event loop stopped with error:", err)
// Bail if there is no error or if the error is an explicit close, as
// there might be an ongoing reconnection.
if err == nil || errors.Is(err, wsutil.ErrWebsocketClosed) {
return
}
// Only attempt to reconnect if we have a session ID at all. We may not
// have one if we haven't even connected successfully once.
if err != nil && g.SessionID() != "" {
if g.SessionID() != "" {
g.ErrorLog(err)
g.Reconnect()
}