diff options
author | Geert Bosch <geert@mongodb.com> | 2017-07-08 00:24:03 -0400 |
---|---|---|
committer | Geert Bosch <geert@mongodb.com> | 2017-07-18 11:22:25 -0400 |
commit | 8281fff6b58911c84b0ba53a4a557ebf4dced10b (patch) | |
tree | 7a505e2e77e6ee343e4a9f07e49d1917c169c754 /src/mongo/db/namespace_string.cpp | |
parent | 32da960b3d4f80e4005bfcc21dd56067353d64fb (diff) | |
download | mongo-8281fff6b58911c84b0ba53a4a557ebf4dced10b.tar.gz |
SERVER-30106 Allow syncTail replication to write to drop-pending collections
Reinstated after revert in a1c67941bf08c69cab04eba20bc9ce9a763e1c7f
Diffstat (limited to 'src/mongo/db/namespace_string.cpp')
-rw-r--r-- | src/mongo/db/namespace_string.cpp | 54 |
1 files changed, 27 insertions, 27 deletions
diff --git a/src/mongo/db/namespace_string.cpp b/src/mongo/db/namespace_string.cpp index b9cedd47a95..eaf1fab39ff 100644 --- a/src/mongo/db/namespace_string.cpp +++ b/src/mongo/db/namespace_string.cpp @@ -79,33 +79,6 @@ constexpr auto dropPendingNSPrefix = "system.drop."_sd; } // namespace -bool legalClientSystemNS(StringData ns) { - if (ns == "local.system.replset") - return true; - - if (ns.find(".system.users") != string::npos) - return true; - - if (ns == "admin.system.roles") - return true; - if (ns == kServerConfiguration) - return true; - if (ns == kLogicalTimeKeysCollection) - return true; - if (ns == "admin.system.new_users") - return true; - if (ns == "admin.system.backup_users") - return true; - - if (ns.find(".system.js") != string::npos) - return true; - - if (nsToCollectionSubstring(ns) == NamespaceString::kSystemDotViewsCollectionName) - return true; - - return false; -} - constexpr StringData NamespaceString::kAdminDb; constexpr StringData NamespaceString::kLocalDb; constexpr StringData NamespaceString::kConfigDb; @@ -129,6 +102,33 @@ bool NamespaceString::isCollectionlessAggregateNS() const { return coll() == collectionlessAggregateCursorCol; } +bool NamespaceString::isLegalClientSystemNS() const { + if (db() == "admin") { + if (ns() == "admin.system.roles") + return true; + if (ns() == kServerConfiguration) + return true; + if (ns() == kLogicalTimeKeysCollection) + return true; + if (ns() == "admin.system.new_users") + return true; + if (ns() == "admin.system.backup_users") + return true; + } + if (ns() == "local.system.replset") + return true; + + if (coll() == "system.users") + return true; + if (coll() == "system.js") + return true; + + if (coll() == kSystemDotViewsCollectionName) + return true; + + return false; +} + NamespaceString NamespaceString::makeListCollectionsNSS(StringData dbName) { NamespaceString nss(dbName, listCollectionsCursorCol); dassert(nss.isValid()); |