summaryrefslogtreecommitdiffstats
path: root/gateway
diff options
context:
space:
mode:
authorWim <wim@42.be>2018-01-21 12:21:55 +0100
committerWim <wim@42.be>2018-01-21 12:21:55 +0100
commit6523494e83a97ccddfa5993d979bbac470fb09c5 (patch)
treec8c7c4c5a9a6ae3a90d07c6f57d651ea9bbba5e2 /gateway
parent7c6ce8bb90982edf6e9f01a8aed310c257048fec (diff)
downloadmatterbridge-msglm-6523494e83a97ccddfa5993d979bbac470fb09c5.tar.gz
matterbridge-msglm-6523494e83a97ccddfa5993d979bbac470fb09c5.tar.bz2
matterbridge-msglm-6523494e83a97ccddfa5993d979bbac470fb09c5.zip
Obey the Gateway value from the json (api). Closes #344
Diffstat (limited to 'gateway')
-rw-r--r--gateway/gateway.go12
1 files changed, 11 insertions, 1 deletions
diff --git a/gateway/gateway.go b/gateway/gateway.go
index 89ea80ab..a316c34d 100644
--- a/gateway/gateway.go
+++ b/gateway/gateway.go
@@ -119,6 +119,12 @@ func (gw *Gateway) mapChannels() error {
func (gw *Gateway) getDestChannel(msg *config.Message, dest bridge.Bridge) []config.ChannelInfo {
var channels []config.ChannelInfo
+
+ // for messages received from the api check that the gateway is the specified one
+ if msg.Protocol == "api" && gw.Name != msg.Gateway {
+ return channels
+ }
+
// if source channel is in only, do nothing
for _, channel := range gw.Channels {
// lookup the channel from the message
@@ -321,7 +327,11 @@ func (gw *Gateway) modifyMessage(msg *config.Message) {
}
msg.Text = re.ReplaceAllString(msg.Text, replace)
}
- msg.Gateway = gw.Name
+
+ // messages from api have Gateway specified, don't overwrite
+ if msg.Protocol != "api" {
+ msg.Gateway = gw.Name
+ }
}
func (gw *Gateway) handleFiles(msg *config.Message) {