From 345fd7e4da42e16170545db323e39eb71ad9caaf Mon Sep 17 00:00:00 2001 From: Vishesh Yadav Date: Wed, 13 Feb 2019 16:47:31 -0800 Subject: [PATCH] Prefer unencrypted ports at client side during transition --- fdbrpc/FlowTransport.h | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/fdbrpc/FlowTransport.h b/fdbrpc/FlowTransport.h index e6cbd14a68..9323c7ff6c 100644 --- a/fdbrpc/FlowTransport.h +++ b/fdbrpc/FlowTransport.h @@ -44,6 +44,17 @@ public: if(addresses.size() < 2) { return; } + + if (g_network->getLocalAddresses().size() == 0) { + // At client, we always prefer non-TLS ports during TLS transition. + for (int i = 1; addresses[0].isTLS() && i < addresses.size(); i++) { + if (!addresses[i].isTLS()) { + std::swap(addresses[0], addresses[i]); + } + } + return; + } + for(int i = 0; i < addresses.size(); i++) { bool compatible = false; for(auto& addr : g_network->getLocalAddresses()) {