From a61e2db7cbdbda8292b8b50212072994512bccb3 Mon Sep 17 00:00:00 2001 From: Wim Date: Mon, 25 Sep 2017 21:12:23 +0200 Subject: Backoff for 60 seconds when reconnecting too fast --- vendor/github.com/42wim/go-ircevent/irc.go | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/vendor/github.com/42wim/go-ircevent/irc.go b/vendor/github.com/42wim/go-ircevent/irc.go index bcfe9ac2..ea9c1f05 100644 --- a/vendor/github.com/42wim/go-ircevent/irc.go +++ b/vendor/github.com/42wim/go-ircevent/irc.go @@ -227,12 +227,17 @@ func (irc *Connection) isQuitting() bool { // Main loop to control the connection. func (irc *Connection) Loop() { errChan := irc.ErrorChan() + connTime := time.Now() for !irc.isQuitting() { err := <-errChan close(irc.end) irc.Wait() for !irc.isQuitting() { irc.Log.Printf("Error, disconnected: %s\n", err) + if time.Now().Sub(connTime) < time.Second*5 { + irc.Log.Println("Rreconnecting too fast, sleeping 60 seconds") + time.Sleep(60 * time.Second) + } if err = irc.Reconnect(); err != nil { irc.Log.Printf("Error while reconnecting: %s\n", err) time.Sleep(60 * time.Second) @@ -241,6 +246,7 @@ func (irc *Connection) Loop() { break } } + connTime = time.Now() } } -- cgit v1.2.3