From ddd67e9dc9bf94e706d267b85fab9fb6de5a682f Mon Sep 17 00:00:00 2001
From: Davide Pianca <davidepianca98@gmail.com>
Date: Thu, 8 Aug 2024 10:29:26 +0200
Subject: [PATCH] Fix onDisconnect client callback call on broker termination

---
 kmqtt-client/src/commonMain/kotlin/MQTTClient.kt | 9 +++++++--
 1 file changed, 7 insertions(+), 2 deletions(-)

diff --git a/kmqtt-client/src/commonMain/kotlin/MQTTClient.kt b/kmqtt-client/src/commonMain/kotlin/MQTTClient.kt
index 934ada0..40cdeeb 100644
--- a/kmqtt-client/src/commonMain/kotlin/MQTTClient.kt
+++ b/kmqtt-client/src/commonMain/kotlin/MQTTClient.kt
@@ -329,7 +329,13 @@ public class MQTTClient(
             }
         }
 
-        val data = socket?.read()
+        val data = try {
+            socket?.read()
+        } catch (e: Exception) {
+            close()
+            onDisconnected(null)
+            throw e
+        }
 
         if (data != null) {
             try {
@@ -341,7 +347,6 @@ public class MQTTClient(
                 }
             } catch (e: MQTTException) {
                 lastException = e
-                e.printStackTrace()
                 disconnect(e.reasonCode)
                 close()
                 onDisconnected(null)
-- 
GitLab