From 7771a1cb9b394b8585b4c9074ab67a3c89fc8183 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Adrien=20B=C3=A9raud?= <adrien.beraud@savoirfairelinux.com> Date: Mon, 23 Mar 2015 10:53:26 -0400 Subject: [PATCH] manager: avoid using disabled account to place DHT calls Refs #69037 Change-Id: I028a0e808f3a8c75cc8c6a9727717d9b9b15eb84 --- src/managerimpl.cpp | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/src/managerimpl.cpp b/src/managerimpl.cpp index 491501e1af..ff1b97b996 100644 --- a/src/managerimpl.cpp +++ b/src/managerimpl.cpp @@ -2825,15 +2825,18 @@ std::shared_ptr<Call> ManagerImpl::newOutgoingCall(const std::string& toUrl, const std::string& preferredAccountId) { - std::shared_ptr<Account> account = Manager::instance().getIP2IPAccount(); + auto account = Manager::instance().getIP2IPAccount(); + auto preferred = getAccount(preferredAccountId); std::string finalToUrl = toUrl; #if HAVE_DHT if (toUrl.find("ring:") != std::string::npos) { - RING_WARN("Ring DHT call detected"); + if (preferred && preferred->getAccountType() == RingAccount::ACCOUNT_TYPE) + return preferred->newOutgoingCall(finalToUrl); auto dhtAcc = getAllAccounts<RingAccount>(); - if (not dhtAcc.empty()) - return dhtAcc.front()->newOutgoingCall(finalToUrl); + for (const auto& acc : dhtAcc) + if (acc->isEnabled()) + return acc->newOutgoingCall(finalToUrl); } #endif @@ -2841,7 +2844,7 @@ ManagerImpl::newOutgoingCall(const std::string& toUrl, sip_utils::stripSipUriPrefix(finalToUrl); if (!IpAddr::isValid(finalToUrl)) { - account = getAccount(preferredAccountId); + account = preferred; if (account) finalToUrl = toUrl; else -- GitLab