Fix #3441: Do not assign ID to inbound stanzas
This commit is contained in:
parent
7ddcc3428f
commit
fcf666e3cb
5 changed files with 8 additions and 8 deletions
|
@ -58,14 +58,14 @@ class Iq(RootStanza):
|
|||
types = {'get', 'result', 'set', 'error'}
|
||||
plugin_attrib = name
|
||||
|
||||
def __init__(self, *args, **kwargs):
|
||||
def __init__(self, *args, recv=False, **kwargs):
|
||||
"""
|
||||
Initialize a new <iq> stanza with an 'id' value.
|
||||
|
||||
Overrides StanzaBase.__init__.
|
||||
"""
|
||||
StanzaBase.__init__(self, *args, **kwargs)
|
||||
if self['id'] == '':
|
||||
if not recv and self['id'] == '':
|
||||
if self.stream is not None:
|
||||
self['id'] = self.stream.new_id()
|
||||
else:
|
||||
|
|
|
@ -53,14 +53,14 @@ class Message(RootStanza):
|
|||
lang_interfaces = sub_interfaces
|
||||
types = {'normal', 'chat', 'headline', 'error', 'groupchat'}
|
||||
|
||||
def __init__(self, *args, **kwargs):
|
||||
def __init__(self, *args, recv=False, **kwargs):
|
||||
"""
|
||||
Initialize a new <message /> stanza with an optional 'id' value.
|
||||
|
||||
Overrides StanzaBase.__init__.
|
||||
"""
|
||||
StanzaBase.__init__(self, *args, **kwargs)
|
||||
if self['id'] == '':
|
||||
if not recv and self['id'] == '':
|
||||
if self.stream is not None and self.stream.use_message_ids:
|
||||
self['id'] = self.stream.new_id()
|
||||
else:
|
||||
|
|
|
@ -61,14 +61,14 @@ class Presence(RootStanza):
|
|||
'subscribed', 'unsubscribe', 'unsubscribed'}
|
||||
showtypes = {'dnd', 'chat', 'xa', 'away'}
|
||||
|
||||
def __init__(self, *args, **kwargs):
|
||||
def __init__(self, *args, recv=False, **kwargs):
|
||||
"""
|
||||
Initialize a new <presence /> stanza with an optional 'id' value.
|
||||
|
||||
Overrides StanzaBase.__init__.
|
||||
"""
|
||||
StanzaBase.__init__(self, *args, **kwargs)
|
||||
if self['id'] == '':
|
||||
if not recv and self['id'] == '':
|
||||
if self.stream is not None and self.stream.use_presence_ids:
|
||||
self['id'] = self.stream.new_id()
|
||||
|
||||
|
|
|
@ -1381,7 +1381,7 @@ class StanzaBase(ElementBase):
|
|||
namespace = 'jabber:client'
|
||||
|
||||
def __init__(self, stream=None, xml=None, stype=None,
|
||||
sto=None, sfrom=None, sid=None, parent=None):
|
||||
sto=None, sfrom=None, sid=None, parent=None, recv=False):
|
||||
self.stream = stream
|
||||
if stream is not None:
|
||||
self.namespace = stream.default_ns
|
||||
|
|
|
@ -1157,7 +1157,7 @@ class XMLStream(asyncio.BaseProtocol):
|
|||
xml.tag == stanza_class.tag_name():
|
||||
stanza_type = stanza_class
|
||||
break
|
||||
stanza = stanza_type(self, xml)
|
||||
stanza = stanza_type(self, xml, recv=True)
|
||||
if stanza['lang'] is None and self.peer_default_lang:
|
||||
stanza['lang'] = self.peer_default_lang
|
||||
return stanza
|
||||
|
|
Loading…
Reference in a new issue