diff options
Diffstat (limited to 'src/mongo/client/mongo_uri.cpp')
-rw-r--r-- | src/mongo/client/mongo_uri.cpp | 11 |
1 files changed, 6 insertions, 5 deletions
diff --git a/src/mongo/client/mongo_uri.cpp b/src/mongo/client/mongo_uri.cpp index 99468784adb..1a52948cc51 100644 --- a/src/mongo/client/mongo_uri.cpp +++ b/src/mongo/client/mongo_uri.cpp @@ -148,8 +148,8 @@ std::pair<StringData, StringData> partitionBackward(StringData str, const char c * on multiple parsed option sources. STL setwise operations require sorted lists. A map is used * instead of a vector of pairs to permit insertion-is-not-overwrite behavior. */ -std::map<std::string, std::string> parseOptions(StringData options, StringData url) { - std::map<std::string, std::string> ret; +MongoURI::OptionsMap parseOptions(StringData options, StringData url) { + MongoURI::OptionsMap ret; if (options.empty()) { return ret; } @@ -206,7 +206,7 @@ std::map<std::string, std::string> parseOptions(StringData options, StringData u return ret; } -MongoURI::OptionsMap addTXTOptions(std::map<std::string, std::string> options, +MongoURI::OptionsMap addTXTOptions(MongoURI::OptionsMap options, const std::string& host, const StringData url, const bool isSeedlist) { @@ -488,7 +488,8 @@ MongoURI MongoURI::parseImpl(const std::string& url) { transport::ConnectSSLMode sslMode = transport::kGlobalSSLMode; auto sslModeIter = std::find_if(options.begin(), options.end(), [](auto pred) { - return pred.first == "ssl"_sd || pred.first == "tls"_sd; + return pred.first == CaseInsensitiveString("ssl") || + pred.first == CaseInsensitiveString("tls"); }); if (sslModeIter != options.end()) { const auto& val = sslModeIter->second; @@ -565,7 +566,7 @@ std::string MongoURI::canonicalizeURIAsString() const { auto delimeter = ""; uri << "?"; for (const auto& pair : _options) { - uri << delimeter << uriEncode(pair.first) << "=" << uriEncode(pair.second); + uri << delimeter << uriEncode(pair.first.original()) << "=" << uriEncode(pair.second); delimeter = "&"; } } |