Philipp Hörist pushed to branch master at gajim / python-nbxmpp

Commits:

2 changed files:

Changes:

  • nbxmpp/dispatcher.py
    ... ... @@ -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()
    

  • nbxmpp/modules/muclumbus.py
    ... ... @@ -188,7 +188,7 @@ class Muclumbus:
    188 188
             for item in items:
    
    189 189
                 try:
    
    190 190
                     anonymity_mode = AnonymityMode(item['anonymity_mode'])
    
    191
    -            except ValueError:
    
    191
    +            except (ValueError, KeyError):
    
    192 192
                     anonymity_mode = AnonymityMode.UNKNOWN
    
    193 193
     
    
    194 194
                 results.append(