From 08e364e1cd535af9a093af6c571409ad6ddab3ee Mon Sep 17 00:00:00 2001 From: JinmingHu Date: Fri, 23 Oct 2020 09:43:30 +0800 Subject: [PATCH] replace std::tolower with Azure::Core::ToLower (#834) --- .../blobs/protocol/blob_rest_client.hpp | 55 ++++--------------- .../src/shared_key_policy.cpp | 33 +++++------ .../azure-storage-common/test/test_base.cpp | 6 +- 3 files changed, 26 insertions(+), 68 deletions(-) diff --git a/sdk/storage/azure-storage-blobs/inc/azure/storage/blobs/protocol/blob_rest_client.hpp b/sdk/storage/azure-storage-blobs/inc/azure/storage/blobs/protocol/blob_rest_client.hpp index 9db0e6dce..cd93f9cfd 100644 --- a/sdk/storage/azure-storage-blobs/inc/azure/storage/blobs/protocol/blob_rest_client.hpp +++ b/sdk/storage/azure-storage-blobs/inc/azure/storage/blobs/protocol/blob_rest_client.hpp @@ -8,6 +8,7 @@ #include "azure/core/http/pipeline.hpp" #include "azure/core/nullable.hpp" #include "azure/core/response.hpp" +#include "azure/core/strings.hpp" #include "azure/storage/common/crypt.hpp" #include "azure/storage/common/storage_common.hpp" #include "azure/storage/common/storage_error.hpp" @@ -3473,11 +3474,7 @@ namespace Azure { namespace Storage { namespace Blobs { std::set metadataKeys; for (const auto& pair : options.Metadata) { - std::string key = pair.first; - std::transform(key.begin(), key.end(), key.begin(), [](unsigned char c) { - return static_cast(std::tolower(c)); - }); - if (metadataKeys.insert(key).second == false) + if (metadataKeys.insert(Azure::Core::Strings::ToLower(pair.first)).second == false) { throw std::runtime_error("duplicate keys in metadata"); } @@ -3703,11 +3700,7 @@ namespace Azure { namespace Storage { namespace Blobs { std::set metadataKeys; for (const auto& pair : options.Metadata) { - std::string key = pair.first; - std::transform(key.begin(), key.end(), key.begin(), [](unsigned char c) { - return static_cast(std::tolower(c)); - }); - if (metadataKeys.insert(key).second == false) + if (metadataKeys.insert(Azure::Core::Strings::ToLower(pair.first)).second == false) { throw std::runtime_error("duplicate keys in metadata"); } @@ -6029,11 +6022,7 @@ namespace Azure { namespace Storage { namespace Blobs { std::set metadataKeys; for (const auto& pair : options.Metadata) { - std::string key = pair.first; - std::transform(key.begin(), key.end(), key.begin(), [](unsigned char c) { - return static_cast(std::tolower(c)); - }); - if (metadataKeys.insert(key).second == false) + if (metadataKeys.insert(Azure::Core::Strings::ToLower(pair.first)).second == false) { throw std::runtime_error("duplicate keys in metadata"); } @@ -6203,11 +6192,7 @@ namespace Azure { namespace Storage { namespace Blobs { std::set metadataKeys; for (const auto& pair : options.Metadata) { - std::string key = pair.first; - std::transform(key.begin(), key.end(), key.begin(), [](unsigned char c) { - return static_cast(std::tolower(c)); - }); - if (metadataKeys.insert(key).second == false) + if (metadataKeys.insert(Azure::Core::Strings::ToLower(pair.first)).second == false) { throw std::runtime_error("duplicate keys in metadata"); } @@ -6401,11 +6386,7 @@ namespace Azure { namespace Storage { namespace Blobs { std::set metadataKeys; for (const auto& pair : options.Metadata) { - std::string key = pair.first; - std::transform(key.begin(), key.end(), key.begin(), [](unsigned char c) { - return static_cast(std::tolower(c)); - }); - if (metadataKeys.insert(key).second == false) + if (metadataKeys.insert(Azure::Core::Strings::ToLower(pair.first)).second == false) { throw std::runtime_error("duplicate keys in metadata"); } @@ -7140,11 +7121,7 @@ namespace Azure { namespace Storage { namespace Blobs { std::set metadataKeys; for (const auto& pair : options.Metadata) { - std::string key = pair.first; - std::transform(key.begin(), key.end(), key.begin(), [](unsigned char c) { - return static_cast(std::tolower(c)); - }); - if (metadataKeys.insert(key).second == false) + if (metadataKeys.insert(Azure::Core::Strings::ToLower(pair.first)).second == false) { throw std::runtime_error("duplicate keys in metadata"); } @@ -7560,11 +7537,7 @@ namespace Azure { namespace Storage { namespace Blobs { std::set metadataKeys; for (const auto& pair : options.Metadata) { - std::string key = pair.first; - std::transform(key.begin(), key.end(), key.begin(), [](unsigned char c) { - return static_cast(std::tolower(c)); - }); - if (metadataKeys.insert(key).second == false) + if (metadataKeys.insert(Azure::Core::Strings::ToLower(pair.first)).second == false) { throw std::runtime_error("duplicate keys in metadata"); } @@ -7931,11 +7904,7 @@ namespace Azure { namespace Storage { namespace Blobs { std::set metadataKeys; for (const auto& pair : options.Metadata) { - std::string key = pair.first; - std::transform(key.begin(), key.end(), key.begin(), [](unsigned char c) { - return static_cast(std::tolower(c)); - }); - if (metadataKeys.insert(key).second == false) + if (metadataKeys.insert(Azure::Core::Strings::ToLower(pair.first)).second == false) { throw std::runtime_error("duplicate keys in metadata"); } @@ -9016,11 +8985,7 @@ namespace Azure { namespace Storage { namespace Blobs { std::set metadataKeys; for (const auto& pair : options.Metadata) { - std::string key = pair.first; - std::transform(key.begin(), key.end(), key.begin(), [](unsigned char c) { - return static_cast(std::tolower(c)); - }); - if (metadataKeys.insert(key).second == false) + if (metadataKeys.insert(Azure::Core::Strings::ToLower(pair.first)).second == false) { throw std::runtime_error("duplicate keys in metadata"); } diff --git a/sdk/storage/azure-storage-common/src/shared_key_policy.cpp b/sdk/storage/azure-storage-common/src/shared_key_policy.cpp index 4cc715068..fffb685f3 100644 --- a/sdk/storage/azure-storage-common/src/shared_key_policy.cpp +++ b/sdk/storage/azure-storage-common/src/shared_key_policy.cpp @@ -17,17 +17,18 @@ namespace Azure { namespace Storage { string_to_sign += Azure::Core::Http::HttpMethodToString(request.GetMethod()) + "\n"; const auto& headers = request.GetHeaders(); - for (std::string headerName : {"Content-Encoding", - "Content-Language", - "Content-Length", - "Content-MD5", - "Content-Type", - "Date", - "If-Modified-Since", - "If-Match", - "If-None-Match", - "If-Unmodified-Since", - "Range"}) + for (std::string headerName : + {"Content-Encoding", + "Content-Language", + "Content-Length", + "Content-MD5", + "Content-Type", + "Date", + "If-Modified-Since", + "If-Match", + "If-None-Match", + "If-Unmodified-Since", + "Range"}) { auto ite = headers.find(Azure::Core::Strings::ToLower(headerName)); if (ite != headers.end()) @@ -51,10 +52,7 @@ namespace Azure { namespace Storage { ite != headers.end() && ite->first.substr(0, prefix.length()) == prefix; ++ite) { - std::string key = ite->first; - std::transform(key.begin(), key.end(), key.begin(), [](char c) { - return static_cast(std::tolower(static_cast(c))); - }); + std::string key = Azure::Core::Strings::ToLower(ite->first); ordered_kv.emplace_back(std::make_pair(std::move(key), ite->second)); } std::sort(ordered_kv.begin(), ordered_kv.end()); @@ -68,10 +66,7 @@ namespace Azure { namespace Storage { string_to_sign += "/" + m_credential->AccountName + "/" + request.GetUrl().GetPath() + "\n"; for (const auto& query : request.GetUrl().GetQueryParameters()) { - std::string key = query.first; - std::transform(key.begin(), key.end(), key.begin(), [](char c) { - return static_cast(std::tolower(static_cast(c))); - }); + std::string key = Azure::Core::Strings::ToLower(query.first); ordered_kv.emplace_back(std::make_pair( Azure::Core::Http::Url::Decode(key), Azure::Core::Http::Url::Decode(query.second))); } diff --git a/sdk/storage/azure-storage-common/test/test_base.cpp b/sdk/storage/azure-storage-common/test/test_base.cpp index 53777d96d..9b105a5d2 100644 --- a/sdk/storage/azure-storage-common/test/test_base.cpp +++ b/sdk/storage/azure-storage-common/test/test_base.cpp @@ -19,6 +19,7 @@ #include #include "azure/core/http/http.hpp" +#include "azure/core/strings.hpp" namespace Azure { namespace Storage { namespace Test { @@ -163,10 +164,7 @@ namespace Azure { namespace Storage { namespace Test { std::string LowercaseRandomString(size_t size) { - auto str = RandomString(size); - std::transform( - str.begin(), str.end(), str.begin(), [](unsigned char c) { return char(std::tolower(c)); }); - return str; + return Azure::Core::Strings::ToLower(RandomString(size)); } std::map RandomMetadata(size_t size)