| ... |
... |
@@ -33,6 +33,7 @@ from nbxmpp.protocol import NS_STREAMS |
|
33
|
33
|
from nbxmpp.protocol import NS_HTTP_BIND
|
|
34
|
34
|
from nbxmpp.protocol import NodeProcessed
|
|
35
|
35
|
from nbxmpp.protocol import InvalidFrom
|
|
|
36
|
+from nbxmpp.protocol import InvalidJid
|
|
36
|
37
|
from nbxmpp.protocol import InvalidStanza
|
|
37
|
38
|
from nbxmpp.protocol import Iq
|
|
38
|
39
|
from nbxmpp.protocol import Presence
|
| ... |
... |
@@ -533,7 +534,12 @@ class XMPPDispatcher(PlugIn): |
|
533
|
534
|
log.debug('Got %s / %s stanza', xmlns, name)
|
|
534
|
535
|
|
|
535
|
536
|
# Convert simplexml to Protocol object
|
|
536
|
|
- stanza = self.handlers[xmlns][name]['type'](node=stanza)
|
|
|
537
|
+ try:
|
|
|
538
|
+ stanza = self.handlers[xmlns][name]['type'](node=stanza)
|
|
|
539
|
+ except InvalidJid:
|
|
|
540
|
+ log.warning('Invalid JID, ignoring stanza')
|
|
|
541
|
+ log.warning(stanza)
|
|
|
542
|
+ return
|
|
537
|
543
|
|
|
538
|
544
|
own_jid = self._owner.get_bound_jid()
|
|
539
|
545
|
properties = get_properties_struct(name)
|
| ... |
... |
@@ -561,8 +567,9 @@ class XMPPDispatcher(PlugIn): |
|
561
|
567
|
# Unwrap carbon
|
|
562
|
568
|
try:
|
|
563
|
569
|
stanza, properties.carbon = unwrap_carbon(stanza, own_jid)
|
|
564
|
|
- except InvalidFrom as exc:
|
|
|
570
|
+ except (InvalidFrom, InvalidJid) as exc:
|
|
565
|
571
|
log.warning(exc)
|
|
|
572
|
+ log.warning(stanza)
|
|
566
|
573
|
return
|
|
567
|
574
|
except NodeProcessed as exc:
|
|
568
|
575
|
log.info(exc)
|
| ... |
... |
@@ -571,7 +578,9 @@ class XMPPDispatcher(PlugIn): |
|
571
|
578
|
# Unwrap mam
|
|
572
|
579
|
try:
|
|
573
|
580
|
stanza, properties.mam = unwrap_mam(stanza, own_jid)
|
|
574
|
|
- except InvalidStanza:
|
|
|
581
|
+ except (InvalidStanza, InvalidJid) as exc:
|
|
|
582
|
+ log.warning(exc)
|
|
|
583
|
+ log.warning(stanza)
|
|
575
|
584
|
return
|
|
576
|
585
|
|
|
577
|
586
|
typ = stanza.getType()
|