diff --git a/adafruit_minimqtt/adafruit_minimqtt.py b/adafruit_minimqtt/adafruit_minimqtt.py index 6b400f5..5a21dee 100644 --- a/adafruit_minimqtt/adafruit_minimqtt.py +++ b/adafruit_minimqtt/adafruit_minimqtt.py @@ -464,6 +464,21 @@ def connect( # noqa: PLR0913, too many arguments in function definition raise MMQTTException(exc_msg) from last_exception raise MMQTTException(exc_msg) + def _send_bytes( + self, + buffer: Union[bytes, bytearray, memoryview], + ): + bytes_sent: int = 0 + bytes_to_send = len(buffer) + view = memoryview(buffer) + while bytes_sent < bytes_to_send: + try: + bytes_sent += self._sock.send(view[bytes_sent:]) + except OSError as exc: + if exc.errno == EAGAIN: + continue + raise + def _connect( # noqa: PLR0912, PLR0913, PLR0915, Too many branches, Too many arguments, Too many statements self, clean_session: bool = True,