Welcome to mirror list, hosted at ThFree Co, Russian Federation.

dev.gajim.org/gajim/python-nbxmpp.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPhilipp Hörist <philipp@hoerist.com>2019-10-05 14:16:42 +0300
committerPhilipp Hörist <philipp@hoerist.com>2019-10-05 14:16:42 +0300
commitff8e7bb66682565ad6d5cc3023612b506502cef9 (patch)
treee6e863876d2bbc01cffcfc094cfc4a5d9fb301eb /nbxmpp/modules
parent35cb5c69d84938bec1c2eeab820ad2b8b06f75bc (diff)
Determine remote jid correctly in all cases
Diffstat (limited to 'nbxmpp/modules')
-rw-r--r--nbxmpp/modules/message.py16
1 files changed, 15 insertions, 1 deletions
diff --git a/nbxmpp/modules/message.py b/nbxmpp/modules/message.py
index da59fa1..6385868 100644
--- a/nbxmpp/modules/message.py
+++ b/nbxmpp/modules/message.py
@@ -40,7 +40,21 @@ class BaseMessage:
def _process_message_base(self, _con, stanza, properties):
properties.type = self._parse_type(stanza)
- properties.jid = stanza.getFrom()
+
+ # Determine remote JID
+ if properties.is_carbon_message and properties.carbon.is_sent:
+ properties.jid = stanza.getTo()
+
+ elif properties.is_mam_message and not properties.type.is_groupchat:
+ own_jid = self._client.get_bound_jid()
+ if own_jid.bareMatch(stanza.getFrom()):
+ properties.jid = stanza.getTo()
+ else:
+ properties.jid = stanza.getFrom()
+
+ else:
+ properties.jid = stanza.getFrom()
+
properties.id = stanza.getID()
properties.self_message = self._parse_self_message(stanza, properties)