Thumbnail

rani/matterbridge.git

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

commit 6f22fe02b00e7dd55d01627c28c7fc33043e4373 Author: Jonathan Walker (Keenan) <xorith@gmail.com> Date: Sat Oct 16 17:36:30 2021 +0000 Invalidate user in cache on user change event (#1604) Co-authored-by: Wim <wim@42.be> diff --git a/bridge/slack/handlers.go b/bridge/slack/handlers.go index d05a358..4dc57d0 100644 --- a/bridge/slack/handlers.go +++ b/bridge/slack/handlers.go @@ -956 +958 @@ func (b *Bslack) handleSlackClient(messages chan *config.Message) {   b.users.populateUser(ev.User)   case *slack.HelloEvent, *slack.LatencyReport, *slack.ConnectingEvent:   continue + case *slack.UserChangeEvent: + b.users.invalidateUser(ev.User.ID)   default:   b.Log.Debugf("Unhandled incoming event: %T", ev)   } diff --git a/bridge/slack/users_channels.go b/bridge/slack/users_channels.go index 41fd0bd..9b34b77 100644 --- a/bridge/slack/users_channels.go +++ b/bridge/slack/users_channels.go @@ -1136 +11312 @@ func (b *users) populateUser(userID string) {   b.users[userID] = user  }   +func (b *users) invalidateUser(userID string) { + b.usersMutex.Lock() + defer b.usersMutex.Unlock() + delete(b.users, userID) +} +  func (b *users) populateUsers(wait bool) {   b.refreshMutex.Lock()   if !wait && (time.Now().Before(b.earliestRefresh) || b.refreshInProgress) {