Philipp Hörist pushed to branch master at gajim / python-nbxmpp
Commits:
-
e30565e2
by Thilo Molitor at 2017-02-14T00:17:34+01:00
-
abc42a9b
by Philipp Hörist at 2017-02-14T00:20:36+01:00
2 changed files:
Changes:
| 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()
|
| ... | ... | @@ -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):
|