diff --git a/src/connectionmanager.cpp b/src/connectionmanager.cpp index 96bd6ba1b7e855a850fce42de3fbd4d946e2b279..e4453f0db26aec2b18ed90faac973a52c3335a14 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(); }); + } }); }