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

Commits:

2 changed files:

Changes:

  • nbxmpp/smacks.py
    1 1
     from .protocol import Acks
    
    2 2
     from .protocol import NS_STREAM_MGMT
    
    3
    +from .transports_nb import CONNECTED, CONNECTING, DISCONNECTED, DISCONNECTING
    
    3 4
     import logging
    
    4 5
     log = logging.getLogger('nbxmpp.smacks')
    
    5 6
     
    
    ... ... @@ -104,6 +105,14 @@ class Smacks(object):
    104 105
             ack = Acks()
    
    105 106
             ack.buildAnswer(self.in_h)
    
    106 107
             self._owner.Connection.send(ack, False)
    
    108
    +    
    
    109
    +    def send_closing_ack(self):
    
    110
    +        if self._owner.Connection.get_state() != DISCONNECTING:
    
    111
    +            log.error("Not allowed to send closing smacks ack when not disconnecting!")
    
    112
    +            return
    
    113
    +        ack = Acks()
    
    114
    +        ack.buildAnswer(self.in_h)
    
    115
    +        self._owner.Connection.send(ack, True)
    
    107 116
     
    
    108 117
         def request_ack(self):
    
    109 118
             r = Acks()
    

  • nbxmpp/transports_nb.py
    ... ... @@ -304,6 +304,8 @@ class NonBlockingTransport(PlugIn):
    304 304
         # FIXME: where and why does this need to be called
    
    305 305
         def start_disconnect(self):
    
    306 306
             self.set_state(DISCONNECTING)
    
    307
    +        if self._owner._caller.sm and self._owner._caller.sm.enabled:
    
    308
    +            self._owner._caller.sm.send_closing_ack()
    
    307 309
     
    
    308 310
     
    
    309 311
     class NonBlockingTCP(NonBlockingTransport, IdleObject):