Thumbnail

rani/matterbridge.git

Clone URL: https://git.buni.party/rani/matterbridge.git

commit 8b2229bfaf9dbe9ebed5ef40fd239228fb11250d Author: Wim <wim@42.be> Date: Tue Apr 21 19:29:24 2020 +0000 Remove panics and retry polling on failure (msteams). Fixes #1104 (#1105) diff --git a/bridge/msteams/msteams.go b/bridge/msteams/msteams.go index b3540d0..be0cd88 100644 --- a/bridge/msteams/msteams.go +++ b/bridge/msteams/msteams.go @@ -717 +7115 @@ func (b *Bmsteams) Disconnect() error {  }    func (b *Bmsteams) JoinChannel(channel config.ChannelInfo) error { - go b.poll(channel.Name) + go func(name string) { + for { + err := b.poll(name) + if err != nil { + b.Log.Errorf("polling failed for %s: %s. retrying in 5 seconds", name, err) + } + time.Sleep(time.Second * 5) + } + }(channel.Name)   return nil  }   @@ -12012 +12812 @@ func (b *Bmsteams) getMessages(channel string) ([]msgraph.ChatMessage, error) {  }    //nolint:gocognit -func (b *Bmsteams) poll(channelName string) { +func (b *Bmsteams) poll(channelName string) error {   msgmap := make(map[string]time.Time)   b.Log.Debug("getting initial messages")   res, err := b.getMessages(channelName)   if err != nil { - panic(err) + return err   }   for _, msg := range res {   msgmap[*msg.ID] = *msg.CreatedDateTime @@ -1387 +1467 @@ func (b *Bmsteams) poll(channelName string) {   for {   res, err := b.getMessages(channelName)   if err != nil { - panic(err) + return err   }   for i := len(res) - 1; i >= 0; i-- {   msg := res[i]