Ignore roster pushes that are not from our JID or our server. Ignore badly farmated roster pushes.
This commit is contained in:
parent
292a0ba99a
commit
b8ef7fd854
|
@ -407,6 +407,10 @@ class RosterSetReceivedEvent(nec.NetworkIncomingEvent):
|
||||||
base_network_events = []
|
base_network_events = []
|
||||||
|
|
||||||
def generate(self):
|
def generate(self):
|
||||||
|
frm = helpers.get_jid_from_iq(self.stanza)
|
||||||
|
our_jid = gajim.get_jid_from_account(self.conn.name)
|
||||||
|
if frm and frm != our_jid and frm != gajim.get_server_from_jid(our_jid):
|
||||||
|
return
|
||||||
self.version = self.stanza.getTagAttr('query', 'ver')
|
self.version = self.stanza.getTagAttr('query', 'ver')
|
||||||
self.items = {}
|
self.items = {}
|
||||||
for item in self.stanza.getTag('query').getChildren():
|
for item in self.stanza.getTag('query').getChildren():
|
||||||
|
@ -423,6 +427,11 @@ class RosterSetReceivedEvent(nec.NetworkIncomingEvent):
|
||||||
groups.append(group.getData())
|
groups.append(group.getData())
|
||||||
self.items[jid] = {'name': name, 'sub': sub, 'ask': ask,
|
self.items[jid] = {'name': name, 'sub': sub, 'ask': ask,
|
||||||
'groups': groups}
|
'groups': groups}
|
||||||
|
if len(self.items) > 1:
|
||||||
|
reply = nbxmpp.Iq(typ='error', attrs={'id': self.stanza.getID()},
|
||||||
|
to=self.stanza.getFrom(), frm=self.stanza.getTo(), xmlns=None)
|
||||||
|
self.conn.connection.send(reply)
|
||||||
|
return
|
||||||
if self.conn.connection and self.conn.connected > 1:
|
if self.conn.connection and self.conn.connected > 1:
|
||||||
reply = nbxmpp.Iq(typ='result', attrs={'id': self.stanza.getID()},
|
reply = nbxmpp.Iq(typ='result', attrs={'id': self.stanza.getID()},
|
||||||
to=self.stanza.getFrom(), frm=self.stanza.getTo(), xmlns=None)
|
to=self.stanza.getFrom(), frm=self.stanza.getTo(), xmlns=None)
|
||||||
|
|
Loading…
Reference in New Issue