From 4cda2d71560302955ea5e9243f61378edb3772ed Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Adrien=20B=C3=A9raud?= <adrien.beraud@savoirfairelinux.com>
Date: Thu, 1 Jun 2023 15:44:43 -0400
Subject: [PATCH] connectionmanager: catch exception if initIceInstance throws

backport from 6c7042e1338fa62c7f45018e489e7d3781ede79a in jami-daemon

Change-Id: I0dd69d7908137e3715d6a9158b5a0c4975b7748a
---
 src/connectionmanager.cpp | 16 ++++++++++++++--
 1 file changed, 14 insertions(+), 2 deletions(-)

diff --git a/src/connectionmanager.cpp b/src/connectionmanager.cpp
index 96bd6ba..e4453f0 100644
--- a/src/connectionmanager.cpp
+++ b/src/connectionmanager.cpp
@@ -756,7 +756,13 @@ ConnectionManager::Impl::connectDevice(const std::shared_ptr<dht::crypto::Certif
             info->ice_->setOnShutdown([eraseInfo]() {
                 dht::ThreadPool::io().run([eraseInfo = std::move(eraseInfo)] { eraseInfo(); });
             });
-            info->ice_->initIceInstance(ice_config);
+            try {
+                info->ice_->initIceInstance(ice_config);
+            } catch (const std::exception& e) {
+                if (sthis->config_->logger)
+                    sthis->config_->logger->error("{}", e.what());
+                dht::ThreadPool::io().run([eraseInfo = std::move(eraseInfo)] { eraseInfo(); });
+            }
         });
     });
 }
@@ -1152,7 +1158,13 @@ ConnectionManager::Impl::onDhtPeerRequest(const PeerConnectionRequest& req,
         info->ice_->setOnShutdown([eraseInfo]() {
             dht::ThreadPool::io().run([eraseInfo = std::move(eraseInfo)] { eraseInfo(); });
         });
-        info->ice_->initIceInstance(ice_config);
+        try {
+            info->ice_->initIceInstance(ice_config);
+        } catch (const std::exception& e) {
+            if (shared->config_->logger)
+                shared->config_->logger->error("{}", e.what());
+            dht::ThreadPool::io().run([eraseInfo = std::move(eraseInfo)] { eraseInfo(); });
+        }
     });
 }
 
-- 
GitLab