Skip to content

Commit cd541fd

Browse files
author
brentru
committed
tested on TLS/SSL esp32 implementation
1 parent 2826fa8 commit cd541fd

File tree

1 file changed

+7
-10
lines changed

1 file changed

+7
-10
lines changed

adafruit_minimqtt.py

Lines changed: 7 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -94,11 +94,6 @@ def set_socket(sock, iface=None):
9494
_the_interface = iface
9595
_the_sock.set_interface(iface)
9696

97-
def unpretty_ip(ip): # pylint: disable=no-self-use, invalid-name
98-
"""Converts a dotted-quad string to a bytearray IP address"""
99-
octets = [int(x) for x in ip.split('.')]
100-
return bytes(octets)
101-
10297
class MQTT:
10398
"""MQTT Client for CircuitPython
10499
:param str broker: MQTT Broker URL or IP Address.
@@ -119,7 +114,7 @@ def __init__(self, broker, port=None, username=None,
119114
self._sock = None
120115
# broker
121116
try: # set broker IP
122-
self.broker = unpretty_ip(broker)
117+
self.broker = _the_interface.unpretty_ip(broker)
123118
except ValueError: # set broker URL
124119
self.broker = broker
125120
# port/ssl
@@ -223,20 +218,22 @@ def connect(self, clean_session=True):
223218
self.broker, port = self.broker.split(":", 1)
224219
port = int(port)
225220

226-
addr = _the_sock.getaddrinfo(self.broker, self.port)[0]
227-
self._sock = _the_sock.socket(addr[0], _the_sock.SOCK_STREAM, addr[2])
221+
addr = _the_sock.getaddrinfo(self.broker, self.port, 0, _the_sock.SOCK_STREAM)[0]
222+
self._sock = _the_sock.socket(addr[0], addr[1], addr[2])
228223
self._sock.settimeout(15)
229224
if self.port == 8883:
230225
try:
231226
if self.logger is not None:
232227
self.logger.debug('Attempting to establish secure MQTT connection...')
233-
self._sock.connect(addr[-1], TLS_MODE)
228+
self._sock.connect((self.broker, self.port), _the_interface.TLS_MODE)
234229
except RuntimeError as e:
235230
raise MMQTTException("Invalid broker address defined.", e)
236231
else:
237232
try:
238233
if self.logger is not None:
239234
self.logger.debug('Attempting to establish insecure MQTT connection...')
235+
if hasattr(self.broker, "extend"):
236+
self.broker = _the_interface.pretty_ip(self.broker)
240237
self._sock.connect(addr[-1], TCP_MODE)
241238
except RuntimeError as e:
242239
raise MMQTTException("Invalid broker address defined.", e)
@@ -680,7 +677,7 @@ def _check_topic(topic):
680677
if not topic:
681678
raise MMQTTException('Topic may not be empty.')
682679
# [MQTT-4.7.3-3]
683-
elif len(topic.encode('utf-8')) > MQTT_TOPIC_LENGTH_LIMIT:
680+
if len(topic.encode('utf-8')) > MQTT_TOPIC_LENGTH_LIMIT:
684681
raise MMQTTException('Topic length is too large.')
685682

686683
@staticmethod

0 commit comments

Comments
 (0)