From cd6c2912f272707fc5b0a7d13670e42fbb50bc73 Mon Sep 17 00:00:00 2001 From: Roger Light Date: Sat, 7 Dec 2013 22:55:00 +0000 Subject: [PATCH] Close socket after sending DISCONNECT. --- src/paho/mqtt/client.py | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/src/paho/mqtt/client.py b/src/paho/mqtt/client.py index 4e564fa..f3fd15d 100755 --- a/src/paho/mqtt/client.py +++ b/src/paho/mqtt/client.py @@ -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) -- 2.39.5