From 2eea2ce34ddb3eb99074a9f6c8fe7c39e2771848 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?S=C3=A9bastien=20Blin?=
 <sebastien.blin@savoirfairelinux.com>
Date: Fri, 26 May 2023 09:02:10 -0400
Subject: [PATCH] conversation_module: check swarmManager

Change-Id: I4627179aefe44e7cc0720c28076f70d2aaf17b0c
---
 src/jamidht/conversation.cpp        | 8 ++++++--
 src/jamidht/conversation_module.cpp | 8 +++-----
 2 files changed, 9 insertions(+), 7 deletions(-)

diff --git a/src/jamidht/conversation.cpp b/src/jamidht/conversation.cpp
index cea344fe15..5f5a9b0c16 100644
--- a/src/jamidht/conversation.cpp
+++ b/src/jamidht/conversation.cpp
@@ -864,19 +864,23 @@ Conversation::shutdownConnections()
 {
     pimpl_->fallbackTimer_->cancel();
     pimpl_->gitSocketList_.clear();
-    pimpl_->swarmManager_->shutdown();
+    if (pimpl_->swarmManager_)
+        pimpl_->swarmManager_->shutdown();
     pimpl_->checkedMembers_.clear();
 }
 
 void
 Conversation::connectivityChanged()
 {
-    pimpl_->swarmManager_->maintainBuckets();
+    if (pimpl_->swarmManager_)
+        pimpl_->swarmManager_->maintainBuckets();
 }
 
 bool
 Conversation::hasSwarmChannel(const std::string& deviceId)
 {
+    if (!pimpl_->swarmManager_)
+        return false;
     return pimpl_->swarmManager_->isConnectedWith(DeviceId(deviceId));
 }
 
diff --git a/src/jamidht/conversation_module.cpp b/src/jamidht/conversation_module.cpp
index 62f5af6820..0f7c28db81 100644
--- a/src/jamidht/conversation_module.cpp
+++ b/src/jamidht/conversation_module.cpp
@@ -2707,11 +2707,9 @@ ConversationModule::addSwarmChannel(const std::string& conversationId,
 void
 ConversationModule::connectivityChanged()
 {
-    {
-        std::lock_guard<std::mutex> lk(pimpl_->conversationsMtx_);
-        for (auto& [k, conversation] : pimpl_->conversations_) {
-            conversation->connectivityChanged();
-        }
+    std::lock_guard<std::mutex> lk(pimpl_->conversationsMtx_);
+    for (auto& [k, conversation] : pimpl_->conversations_) {
+        conversation->connectivityChanged();
     }
 }
 } // namespace jami
-- 
GitLab