From fba2749b0be648c243cbe45c2225624eb48b348e Mon Sep 17 00:00:00 2001 From: Qais Patankar Date: Wed, 19 Jun 2019 13:56:38 +0100 Subject: [PATCH] router: always update msg ID cache Bridges can now return different message IDs in response to edits. --- gateway/router.go | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/gateway/router.go b/gateway/router.go index 613a2c48..62b1bf03 100644 --- a/gateway/router.go +++ b/gateway/router.go @@ -140,10 +140,11 @@ func (r *Router) handleReceive() { for _, br := range gw.Bridges { msgIDs = append(msgIDs, gw.handleMessage(&msg, br)...) } - // only add the message ID if it doesn't already exists - if _, ok := gw.Messages.Get(msg.Protocol + " " + msg.ID); !ok && msg.ID != "" { - gw.Messages.Add(msg.Protocol+" "+msg.ID, msgIDs) - } + + // Always add/update the message ID. This is necessary as msgIDs + // will change if a bridge returns a different ID in response to edits. + gw.Messages.Add(msg.Protocol+" "+msg.ID, msgIDs) + idx++ } }