From f19b0fad9b99181e9a5e5a892ae354d940db2bb2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Adrien=20B=C3=A9raud?= <adrien.beraud@savoirfairelinux.com> Date: Mon, 25 Sep 2023 16:38:13 -0400 Subject: [PATCH] contrib: update dhtnet Change-Id: I30915805e03c2600f038fe465e744163d81a4b08 --- contrib/src/dhtnet/package.json | 2 +- contrib/src/dhtnet/rules.mak | 2 +- src/jamidht/jamiaccount.cpp | 4 ++-- src/jamidht/jamiaccount.h | 2 +- src/manager.cpp | 8 +++---- src/manager.h | 2 +- src/sip/sipaccountbase.cpp | 2 +- src/sip/sipcall.cpp | 4 +--- test/unitTest/ice/ice.cpp | 40 ++++++++++++++++----------------- 9 files changed, 32 insertions(+), 34 deletions(-) diff --git a/contrib/src/dhtnet/package.json b/contrib/src/dhtnet/package.json index 7505f3aab7..1d461b1981 100644 --- a/contrib/src/dhtnet/package.json +++ b/contrib/src/dhtnet/package.json @@ -1,6 +1,6 @@ { "name": "dhtnet", - "version": "2f3539bc19cf770cd23912c7eebe63e8d2f80515", + "version": "4796de15ed32b41949489c328bc250d17c431c80", "url": "https://review.jami.net/plugins/gitiles/dhtnet/+archive/__VERSION__.tar.gz", "deps": [ "opendht", diff --git a/contrib/src/dhtnet/rules.mak b/contrib/src/dhtnet/rules.mak index 3fe00d8487..bec1d14555 100644 --- a/contrib/src/dhtnet/rules.mak +++ b/contrib/src/dhtnet/rules.mak @@ -1,5 +1,5 @@ # DHTNET -DHTNET_VERSION := 2f3539bc19cf770cd23912c7eebe63e8d2f80515 +DHTNET_VERSION := 4796de15ed32b41949489c328bc250d17c431c80 DHTNET_URL := https://review.jami.net/plugins/gitiles/dhtnet/+archive/$(DHTNET_VERSION).tar.gz PKGS += dhtnet diff --git a/src/jamidht/jamiaccount.cpp b/src/jamidht/jamiaccount.cpp index 2c8469118a..689f2eee9d 100644 --- a/src/jamidht/jamiaccount.cpp +++ b/src/jamidht/jamiaccount.cpp @@ -4192,7 +4192,7 @@ JamiAccount::initConnectionManager() auto connectionManagerConfig = std::make_shared<dhtnet::ConnectionManager::Config>(); connectionManagerConfig->ioContext = Manager::instance().ioContext(); connectionManagerConfig->dht = dht(); - connectionManagerConfig->certStore = certStore_.get(); + connectionManagerConfig->certStore = certStore_; connectionManagerConfig->id = identity(); connectionManagerConfig->upnpCtrl = upnpCtrl_; connectionManagerConfig->turnServer = config().turnServer; @@ -4203,7 +4203,7 @@ JamiAccount::initConnectionManager() connectionManagerConfig->turnEnabled = config().turnEnabled; connectionManagerConfig->cachePath = cachePath_; connectionManagerConfig->logger = Logger::dhtLogger(); - connectionManagerConfig->factory = &Manager::instance().getIceTransportFactory(); + connectionManagerConfig->factory = Manager::instance().getIceTransportFactory(); connectionManagerConfig->turnCache = turnCache_; connectionManager_ = std::make_unique<dhtnet::ConnectionManager>(connectionManagerConfig); channelHandlers_[Uri::Scheme::SWARM] diff --git a/src/jamidht/jamiaccount.h b/src/jamidht/jamiaccount.h index 2e55c27902..34d6c42317 100644 --- a/src/jamidht/jamiaccount.h +++ b/src/jamidht/jamiaccount.h @@ -707,7 +707,7 @@ private: std::string registeredName_; #endif std::shared_ptr<dht::Logger> logger_; - std::unique_ptr<dhtnet::tls::CertificateStore> certStore_; + std::shared_ptr<dhtnet::tls::CertificateStore> certStore_; std::shared_ptr<dht::DhtRunner> dht_ {}; std::shared_ptr<AccountManager> accountManager_; diff --git a/src/manager.cpp b/src/manager.cpp index 05ab417268..ba9bced7c5 100644 --- a/src/manager.cpp +++ b/src/manager.cpp @@ -434,7 +434,7 @@ struct Manager::ManagerPimpl std::atomic_bool finished_ {false}; /* ICE support */ - std::unique_ptr<dhtnet::IceTransportFactory> ice_tf_; + std::shared_ptr<dhtnet::IceTransportFactory> ice_tf_; /* Sink ID mapping */ std::map<std::string, std::weak_ptr<video::SinkClient>> sinkMap_; @@ -814,7 +814,7 @@ Manager::init(const std::filesystem::path& config_file, libjami::InitFlag flags) check_rename(fileutils::get_config_dir(PACKAGE_OLD).string(), fileutils::get_config_dir().string()); - pimpl_->ice_tf_.reset(new dhtnet::IceTransportFactory(Logger::dhtLogger())); + pimpl_->ice_tf_ = std::make_shared<dhtnet::IceTransportFactory>(Logger::dhtLogger()); pimpl_->path_ = config_file.empty() ? pimpl_->retrieveConfigPath() : config_file; JAMI_DBG("Configuration file path: %s", pimpl_->path_.c_str()); @@ -3187,10 +3187,10 @@ Manager::hasAccount(const std::string& accountID) return accountFactory.hasAccount(accountID); } -dhtnet::IceTransportFactory& +const std::shared_ptr<dhtnet::IceTransportFactory>& Manager::getIceTransportFactory() { - return *pimpl_->ice_tf_; + return pimpl_->ice_tf_; } VideoManager& diff --git a/src/manager.h b/src/manager.h index 1b660715ca..9bed0fdebe 100644 --- a/src/manager.h +++ b/src/manager.h @@ -789,7 +789,7 @@ public: CallFactory callFactory; - dhtnet::IceTransportFactory& getIceTransportFactory(); + const std::shared_ptr<dhtnet::IceTransportFactory>& getIceTransportFactory(); std::shared_ptr<asio::io_context> ioContext() const; std::shared_ptr<dhtnet::upnp::UPnPContext> upnpContext() const; diff --git a/src/sip/sipaccountbase.cpp b/src/sip/sipaccountbase.cpp index 0e10763372..d0532d83f8 100644 --- a/src/sip/sipaccountbase.cpp +++ b/src/sip/sipaccountbase.cpp @@ -249,7 +249,7 @@ SIPAccountBase::getIceOptions() const noexcept { dhtnet::IceTransportOptions opts; opts.upnpEnable = getUPnPActive(); - opts.factory = (dhtnet::IceTransportFactory*)&Manager::instance().getIceTransportFactory(); + opts.factory = Manager::instance().getIceTransportFactory(); if (config().turnEnabled && turnCache_) { auto turnAddr = turnCache_->getResolvedTurn(); diff --git a/src/sip/sipcall.cpp b/src/sip/sipcall.cpp index 8dfc984778..8477eb3aee 100644 --- a/src/sip/sipcall.cpp +++ b/src/sip/sipcall.cpp @@ -3318,9 +3318,7 @@ SIPCall::InvSessionDeleter::operator()(pjsip_inv_session* inv) const noexcept bool SIPCall::createIceMediaTransport(bool isReinvite) { - auto& iceTransportFactory = Manager::instance().getIceTransportFactory(); - - auto mediaTransport = iceTransportFactory.createTransport(getCallId()); + auto mediaTransport = Manager::instance().getIceTransportFactory()->createTransport(getCallId()); if (mediaTransport) { JAMI_DBG("[call:%s] Successfully created media ICE transport [ice:%p]", getCallId().c_str(), diff --git a/test/unitTest/ice/ice.cpp b/test/unitTest/ice/ice.cpp index da0fad9632..07d55df238 100644 --- a/test/unitTest/ice/ice.cpp +++ b/test/unitTest/ice/ice.cpp @@ -140,9 +140,9 @@ IceTest::testRawIceConnection() ice_config.streamsCount = 1; ice_config.compCountPerStream = 1; ice_config.upnpContext = Manager::instance().upnpContext(); - ice_config.factory = &Manager::instance().getIceTransportFactory(); + ice_config.factory = Manager::instance().getIceTransportFactory(); - ice_master = Manager::instance().getIceTransportFactory().createTransport("master ICE"); + ice_master = Manager::instance().getIceTransportFactory()->createTransport("master ICE"); ice_master->initIceInstance(ice_config); cv_create.notify_all(); ice_config.onInitDone = [&](bool ok) { @@ -176,9 +176,9 @@ IceTest::testRawIceConnection() ice_config.streamsCount = 1; ice_config.compCountPerStream = 1; ice_config.upnpContext = Manager::instance().upnpContext(); - ice_config.factory = &Manager::instance().getIceTransportFactory(); + ice_config.factory = Manager::instance().getIceTransportFactory(); - ice_slave = Manager::instance().getIceTransportFactory().createTransport("slave ICE"); + ice_slave = Manager::instance().getIceTransportFactory()->createTransport("slave ICE"); ice_slave->initIceInstance(ice_config); cv_create.notify_all(); @@ -252,8 +252,8 @@ IceTest::testTurnMasterIceConnection() ice_config.streamsCount = 1; ice_config.compCountPerStream = 1; ice_config.upnpContext = Manager::instance().upnpContext(); - ice_config.factory = &Manager::instance().getIceTransportFactory(); - ice_master = Manager::instance().getIceTransportFactory().createTransport("master ICE"); + ice_config.factory = Manager::instance().getIceTransportFactory(); + ice_master = Manager::instance().getIceTransportFactory()->createTransport("master ICE"); ice_master->initIceInstance(ice_config); cv_create.notify_all(); ice_config.turnServers = {}; @@ -297,8 +297,8 @@ IceTest::testTurnMasterIceConnection() ice_config.streamsCount = 1; ice_config.compCountPerStream = 1; ice_config.upnpContext = Manager::instance().upnpContext(); - ice_config.factory = &Manager::instance().getIceTransportFactory(); - ice_slave = Manager::instance().getIceTransportFactory().createTransport("slave ICE"); + ice_config.factory = Manager::instance().getIceTransportFactory(); + ice_slave = Manager::instance().getIceTransportFactory()->createTransport("slave ICE"); ice_slave->initIceInstance(ice_config); cv_create.notify_all(); @@ -367,8 +367,8 @@ IceTest::testTurnSlaveIceConnection() ice_config.streamsCount = 1; ice_config.compCountPerStream = 1; ice_config.upnpContext = Manager::instance().upnpContext(); - ice_config.factory = &Manager::instance().getIceTransportFactory(); - ice_master = Manager::instance().getIceTransportFactory().createTransport("master ICE"); + ice_config.factory = Manager::instance().getIceTransportFactory(); + ice_master = Manager::instance().getIceTransportFactory()->createTransport("master ICE"); ice_master->initIceInstance(ice_config); cv_create.notify_all(); ice_config.onInitDone = [&](bool ok) { @@ -416,8 +416,8 @@ IceTest::testTurnSlaveIceConnection() ice_config.streamsCount = 1; ice_config.compCountPerStream = 1; ice_config.upnpContext = Manager::instance().upnpContext(); - ice_config.factory = &Manager::instance().getIceTransportFactory(); - ice_slave = Manager::instance().getIceTransportFactory().createTransport("slave ICE"); + ice_config.factory = Manager::instance().getIceTransportFactory(); + ice_slave = Manager::instance().getIceTransportFactory()->createTransport("slave ICE"); ice_slave->initIceInstance(ice_config); cv_create.notify_all(); CPPUNIT_ASSERT( @@ -481,9 +481,9 @@ IceTest::testReceiveTooManyCandidates() ice_config.streamsCount = 1; ice_config.compCountPerStream = 1; ice_config.upnpContext = Manager::instance().upnpContext(); - ice_config.factory = &Manager::instance().getIceTransportFactory(); + ice_config.factory = Manager::instance().getIceTransportFactory(); - ice_master = Manager::instance().getIceTransportFactory().createTransport("master ICE"); + ice_master = Manager::instance().getIceTransportFactory()->createTransport("master ICE"); ice_master->initIceInstance(ice_config); cv_create.notify_all(); ice_config.onInitDone = [&](bool ok) { @@ -525,9 +525,9 @@ IceTest::testReceiveTooManyCandidates() ice_config.streamsCount = 1; ice_config.compCountPerStream = 1; ice_config.upnpContext = Manager::instance().upnpContext(); - ice_config.factory = &Manager::instance().getIceTransportFactory(); + ice_config.factory = Manager::instance().getIceTransportFactory(); - ice_slave = Manager::instance().getIceTransportFactory().createTransport("slave ICE"); + ice_slave = Manager::instance().getIceTransportFactory()->createTransport("slave ICE"); ice_slave->initIceInstance(ice_config); cv_create.notify_all(); CPPUNIT_ASSERT( @@ -594,8 +594,8 @@ IceTest::testCompleteOnFailure() ice_config.streamsCount = 1; ice_config.compCountPerStream = 1; ice_config.upnpContext = Manager::instance().upnpContext(); - ice_config.factory = &Manager::instance().getIceTransportFactory(); - ice_master = Manager::instance().getIceTransportFactory().createTransport("master ICE"); + ice_config.factory = Manager::instance().getIceTransportFactory(); + ice_master = Manager::instance().getIceTransportFactory()->createTransport("master ICE"); ice_master->initIceInstance(ice_config); cv_create.notify_all(); ice_config.onInitDone = [&](bool ok) { @@ -643,8 +643,8 @@ IceTest::testCompleteOnFailure() ice_config.streamsCount = 1; ice_config.compCountPerStream = 1; ice_config.upnpContext = Manager::instance().upnpContext(); - ice_config.factory = &Manager::instance().getIceTransportFactory(); - ice_slave = Manager::instance().getIceTransportFactory().createTransport("slave ICE"); + ice_config.factory = Manager::instance().getIceTransportFactory(); + ice_slave = Manager::instance().getIceTransportFactory()->createTransport("slave ICE"); ice_slave->initIceInstance(ice_config); cv_create.notify_all(); // Check that nego failed and callback called -- GitLab