]> git.michaelhowe.org Git - packages/p/paho-mqtt.git/commitdiff
Close socket after sending DISCONNECT.
authorRoger Light <roger@atchoo.org>
Sat, 7 Dec 2013 22:55:00 +0000 (22:55 +0000)
committerRoger Light <roger@atchoo.org>
Mon, 3 Feb 2014 21:20:22 +0000 (21:20 +0000)
src/paho/mqtt/client.py

index 4e564fa10ed7d2fa4af4c0ecc0649dbc53a58da2..f3fd15dfbac201d7cf63c26e950fb27c4887ae60 100755 (executable)
@@ -1358,6 +1358,21 @@ class Client:
 
                         self._callback_mutex.release()
 
+                    if (packet.command & 0xF0) == DISCONNECT:
+                        self._current_out_packet_mutex.release()
+
+                        self._msgtime_mutex.acquire()
+                        self._last_msg_out = time.time()
+                        self._msgtime_mutex.release()
+
+                        self._callback_mutex.acquire()
+                        if self.on_disconnect:
+                            self._in_callback = True
+                            self.on_disconnect(self, self._userdata, 0)
+                            self._in_callback = False
+                        self._callback_mutex.release()
+                        return MOSQ_ERR_SUCCESS
+
                     self._out_packet_mutex.acquire()
                     if len(self._out_packet) > 0:
                         self._current_out_packet = self._out_packet.pop(0)