From 4e3f343b7a1b9faee0cb71dc3b2c0ecf13c7f707 Mon Sep 17 00:00:00 2001 From: Alexey Polyudov Date: Tue, 15 Sep 2020 00:41:58 -0700 Subject: [PATCH] Roll forward to cl/331709254 Signed-off-by: Alexey Polyudov Change-Id: I1f0b645549f75c08a7af4512265cef8eadc7e672 --- cpp/core/internal/p2p_cluster_pcp_handler.cc | 1 + cpp/core_v2/internal/bwu_manager.cc | 8 ++++---- cpp/core_v2/internal/bwu_manager.h | 1 + cpp/core_v2/internal/mediums/utils.cc | 2 +- 4 files changed, 7 insertions(+), 5 deletions(-) diff --git a/cpp/core/internal/p2p_cluster_pcp_handler.cc b/cpp/core/internal/p2p_cluster_pcp_handler.cc index beaec48b..839cb96d 100644 --- a/cpp/core/internal/p2p_cluster_pcp_handler.cc +++ b/cpp/core/internal/p2p_cluster_pcp_handler.cc @@ -13,6 +13,7 @@ // limitations under the License. #include "core/internal/p2p_cluster_pcp_handler.h" + #include "platform/api/hash_utils.h" namespace location { diff --git a/cpp/core_v2/internal/bwu_manager.cc b/cpp/core_v2/internal/bwu_manager.cc index 92c366bd..2ac7ed5d 100644 --- a/cpp/core_v2/internal/bwu_manager.cc +++ b/cpp/core_v2/internal/bwu_manager.cc @@ -488,9 +488,8 @@ void BwuManager::ProcessLastWriteToPriorChannelEvent( successfully_upgraded_endpoints_.emplace(endpoint_id); return; } - try { - previous_endpoint_channel->Write(parser::ForBwuSafeToClose()); - } catch (IOException e) { + + if (!previous_endpoint_channel->Write(parser::ForBwuSafeToClose()).Ok()) { previous_endpoint_channel->Close(DisconnectionReason::IO_ERROR); // Remove this prior EndpointChannel from previous_endpoint_channels to // avoid leaks. @@ -503,6 +502,7 @@ void BwuManager::ProcessLastWriteToPriorChannelEvent( endpoint_id.c_str()); return; } + // The upgrade protocol's clean shutdown of the prior EndpointChannel will // conclude when we receive a corresponding // BANDWIDTH_UPGRADE_NEGOTIATION.SAFE_TO_CLOSE_PRIOR_CHANNEL OfflineFrame @@ -599,7 +599,7 @@ void BwuManager::ProcessUpgradeFailureEvent( Medium last = parser::UpgradePathInfoMediumToMedium(upgrade_info.medium()); std::vector all_possible_mediums = client->GetUpgradeMediums(endpoint_id).GetMediums(true); - std::vector untried_mediums(all_possible_mediums); + std::vector untried_mediums(all_possible_mediums); for (Medium medium : all_possible_mediums) { untried_mediums.erase(untried_mediums.begin()); if (medium == last) { diff --git a/cpp/core_v2/internal/bwu_manager.h b/cpp/core_v2/internal/bwu_manager.h index c0b00853..df5b5c58 100644 --- a/cpp/core_v2/internal/bwu_manager.h +++ b/cpp/core_v2/internal/bwu_manager.h @@ -16,6 +16,7 @@ #define CORE_V2_INTERNAL_BWU_MANAGER_H_ #include +#include #include "core_v2/internal/bwu_handler.h" #include "core_v2/internal/client_proxy.h" diff --git a/cpp/core_v2/internal/mediums/utils.cc b/cpp/core_v2/internal/mediums/utils.cc index 9d01866c..b4545150 100644 --- a/cpp/core_v2/internal/mediums/utils.cc +++ b/cpp/core_v2/internal/mediums/utils.cc @@ -67,7 +67,7 @@ std::string Utils::WrapUpgradeServiceId(const std::string& service_id) { std::string Utils::UnwrapUpgradeServiceId( const std::string& upgrade_service_id) { - auto pos = upgrade_service_id.find(kUpgradeServiceIdPostfix); + auto pos = upgrade_service_id.find(std::string(kUpgradeServiceIdPostfix)); if (pos != std::string::npos) { return std::string(upgrade_service_id, 0, pos); }