Thumbnail

rani/matterbridge.git

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

commit 9b225ed6e3d15a99734ea9ed7eb1fea6c3d0adb1 Author: Wim <wim@42.be> Date: Fri Nov 11 15:23:22 2016 +0000 Validate channels for samechannelgateway. Fixes #73. diff --git a/gateway/samechannel/samechannel.go b/gateway/samechannel/samechannel.go index 5cdd59a..2240ee8 100644 --- a/gateway/samechannel/samechannel.go +++ b/gateway/samechannel/samechannel.go @@ -5412 +5416 @@ func (gw *SameChannelGateway) handleReceive(c chan config.Message) {  }    func (gw *SameChannelGateway) handleMessage(msg config.Message, dest bridge.Bridge) { + // is this a configured channel + if !gw.validChannel(msg.Channel) { + return + }   // do not send the message to the bridge we come from if also the channel is the same   if msg.FullOrigin == dest.FullOrigin() {   return   }   gw.modifyMessage(&msg, dest) - log.Debugf("Sending %#v from %s to %s", msg, msg.FullOrigin, dest.FullOrigin()) + log.Debugf("Sending %#v from %s (%s) to %s (%s)", msg, msg.FullOrigin, msg.Channel, dest.FullOrigin(), msg.Channel)   err := dest.Send(msg)   if err != nil {   log.Error(err) @@ -883 +9212 @@ func (gw *SameChannelGateway) modifyMessage(msg *config.Message, dest bridge.Bri   setNickFormat(msg, gw.Config.Discord[dest.Origin()].RemoteNickFormat)   }  } + +func (gw *SameChannelGateway) validChannel(channel string) bool { + for _, c := range gw.Channels { + if c == channel { + return true + } + } + return false +}