commit 560bea056e6d37b322c6ce140ce26eb498d7d6c0
Author: Wim <wim@42.be>
Date: Sun Jul 30 16:09:05 2017 +0000
diff --git a/gateway/gateway.go b/gateway/gateway.go
index dfd0604..86fa572 100644
--- a/gateway/gateway.go
+++ b/gateway/gateway.go
@@ -1707 +1708 @@ func (gw *Gateway) handleMessage(msg config.Message, dest *bridge.Bridge) {
}
func (gw *Gateway) ignoreMessage(msg *config.Message) bool {
- if gw.Router.getGatewayName(getChannelID(*msg)) != gw.Name {
+ // if we don't have the bridge, ignore it
+ if _, ok := gw.Bridges[msg.Account]; !ok {
return true
}
if msg.Text == "" {
@@ -2407 +2417 @@ func (gw *Gateway) modifyAvatar(msg config.Message, dest *bridge.Bridge) string
func (gw *Gateway) modifyMessage(msg *config.Message) {
// replace :emoji: to unicode
msg.Text = emojilib.Replace(msg.Text)
- msg.Gateway = gw.Router.getGatewayName(getChannelID(*msg))
+ msg.Gateway = gw.Name
}
func getChannelID(msg config.Message) string {
diff --git a/gateway/router.go b/gateway/router.go
index 26c0996..eb8251e 100644
--- a/gateway/router.go
+++ b/gateway/router.go
@@ -7013 +7014 @@ func (r *Router) getBridge(account string) *bridge.Bridge {
return nil
}
-func (r *Router) getGatewayName(channelID string) string {
+func (r *Router) getGatewayName(channelID string) []string {
+ var names []string
for _, gw := range r.Gateways {
if _, ok := gw.Channels[channelID]; ok {
- return gw.Name
+ names = append(names, gw.Name)
}
}
- return ""
+ return names
}
func (r *Router) handleReceive() {
@@ -10313 +10411 @@ func (r *Router) handleReceive() {
}
}
for _, gw := range r.Gateways {
- if gw.Name == r.getGatewayName(getChannelID(msg)) {
- if !gw.ignoreMessage(&msg) {
- msg.Timestamp = time.Now()
- gw.modifyMessage(&msg)
- for _, br := range gw.Bridges {
- gw.handleMessage(msg, br)
- }
+ if !gw.ignoreMessage(&msg) {
+ msg.Timestamp = time.Now()
+ gw.modifyMessage(&msg)
+ for _, br := range gw.Bridges {
+ gw.handleMessage(msg, br)
}
}
}