From 9f4c8fd6ed7475810d34dce6a025f790d8ba6e55 Mon Sep 17 00:00:00 2001 From: Flavio Fernandes Date: Sun, 20 Nov 2022 18:35:23 -0500 Subject: [PATCH] MQTT connect with an empty username should have the proper header Connect needs to distinguish None from an empty string when populating and sending CONNECT to the MQTT broker. Fixes #129 Signed-off-by: Flavio Fernandes --- adafruit_minimqtt/adafruit_minimqtt.py | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/adafruit_minimqtt/adafruit_minimqtt.py b/adafruit_minimqtt/adafruit_minimqtt.py index a71615f5..9740c274 100644 --- a/adafruit_minimqtt/adafruit_minimqtt.py +++ b/adafruit_minimqtt/adafruit_minimqtt.py @@ -482,7 +482,7 @@ def connect(self, clean_session=True, host=None, port=None, keep_alive=None): # Set up variable header and remaining_length remaining_length = 12 + len(self.client_id.encode("utf-8")) - if self._username: + if self._username is not None: remaining_length += ( 2 + len(self._username.encode("utf-8")) @@ -532,9 +532,7 @@ def connect(self, clean_session=True, host=None, port=None, keep_alive=None): # [MQTT-3.1.3-11] self._send_str(self._lw_topic) self._send_str(self._lw_msg) - if self._username is None: - self._username = None - else: + if self._username is not None: self._send_str(self._username) self._send_str(self._password) if self.logger is not None: