From d4d2d9fc74d7e55c433ed6eabd6b9fd908dc7d2d Mon Sep 17 00:00:00 2001 From: hai007 Date: Wed, 7 Apr 2021 20:12:21 -0700 Subject: [PATCH] Internal change PiperOrigin-RevId: 367348796 --- cpp/core/internal/bwu_manager.cc | 7 +++++-- cpp/core/internal/bwu_manager_test.cc | 19 +++++++++++++++++++ 2 files changed, 24 insertions(+), 2 deletions(-) diff --git a/cpp/core/internal/bwu_manager.cc b/cpp/core/internal/bwu_manager.cc index 364c7e2b..626ac7a4 100644 --- a/cpp/core/internal/bwu_manager.cc +++ b/cpp/core/internal/bwu_manager.cc @@ -948,10 +948,13 @@ void BwuManager::CancelRetryUpgradeAlarm(const std::string& endpoint_id) { void BwuManager::CancelAllRetryUpgradeAlarms() { NEARBY_LOG(INFO, "CancelAllRetryUpgradeAlarms invoked"); - for (const auto& item : retry_upgrade_alarms_) { + for (auto& item : retry_upgrade_alarms_) { const std::string& endpoint_id = item.first; - CancelRetryUpgradeAlarm(endpoint_id); + CancelableAlarm& cancellable_alarm = item.second.first; + NEARBY_LOG(INFO, "CancelRetryUpgradeAlarm for %s", endpoint_id.c_str()); + cancellable_alarm.Cancel(); } + retry_upgrade_alarms_.clear(); } Medium BwuManager::GetEndpointMedium(const std::string& endpoint_id) { diff --git a/cpp/core/internal/bwu_manager_test.cc b/cpp/core/internal/bwu_manager_test.cc index 255068bf..50f19054 100644 --- a/cpp/core/internal/bwu_manager_test.cc +++ b/cpp/core/internal/bwu_manager_test.cc @@ -85,6 +85,25 @@ TEST(BwuManagerTest, CanProcessBandwidthUpgradeFrames) { bwu_manager.Shutdown(); } +TEST(BwuManagerTest, InitiateBwu_UpgradeFails_NoCrash) { + ClientProxy client; + std::string endpoint_id("EP_A"); + Mediums mediums; + EndpointChannelManager ecm; + EndpointManager em{&ecm}; + BwuManager bwu_manager{mediums, em, ecm, {}, {}}; + parser::UpgradePathInfo upgrade_path_info; + upgrade_path_info.set_medium(parser::UpgradePathInfo::WEB_RTC); + + bwu_manager.InitiateBwuForEndpoint(&client, endpoint_id); + ExceptionOr bwu_failed_frame = + parser::FromBytes(parser::ForBwuFailure(upgrade_path_info)); + bwu_manager.OnIncomingFrame(bwu_failed_frame.result(), endpoint_id, &client, + Medium::WEB_RTC); + + bwu_manager.Shutdown(); +} + } // namespace } // namespace connections } // namespace nearby