summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDan Pasette <dan@10gen.com>2013-03-21 14:46:04 -0400
committerDan Pasette <dan@10gen.com>2013-03-21 14:46:04 -0400
commit2802b46fde6d3c20f738df0a233ebd0f0f5f8083 (patch)
tree3cf74507d79d83e8018dec8a7c4f256ee30d9698
parent8ea5dd424949d66d0859a45e9b5bc0889fb0ca30 (diff)
downloadmongo-2802b46fde6d3c20f738df0a233ebd0f0f5f8083.tar.gz
SERVER-7817 Display chainingAllowed option when set to false
-rw-r--r--src/mongo/db/repl/rs_config.cpp41
1 files changed, 24 insertions, 17 deletions
diff --git a/src/mongo/db/repl/rs_config.cpp b/src/mongo/db/repl/rs_config.cpp
index 27e54cd5dae..0c65e8c12f7 100644
--- a/src/mongo/db/repl/rs_config.cpp
+++ b/src/mongo/db/repl/rs_config.cpp
@@ -114,27 +114,34 @@ namespace mongo {
a.append( members[i].asBson() );
b.append("members", a.arr());
- if( !ho.isDefault() || !getLastErrorDefaults.isEmpty() || !rules.empty()) {
- bob settings;
- if( !rules.empty() ) {
- bob modes;
- for (map<string,TagRule*>::const_iterator it = rules.begin(); it != rules.end(); it++) {
- bob clauses;
- vector<TagClause*> r = (*it).second->clauses;
- for (vector<TagClause*>::iterator it2 = r.begin(); it2 < r.end(); it2++) {
- clauses << (*it2)->name << (*it2)->target;
- }
- modes << (*it).first << clauses.obj();
+ BSONObjBuilder settings;
+ bool empty = true;
+
+ if (!rules.empty()) {
+ bob modes;
+ for (map<string,TagRule*>::const_iterator it = rules.begin(); it != rules.end(); it++) {
+ bob clauses;
+ vector<TagClause*> r = (*it).second->clauses;
+ for (vector<TagClause*>::iterator it2 = r.begin(); it2 < r.end(); it2++) {
+ clauses << (*it2)->name << (*it2)->target;
}
- settings << "getLastErrorModes" << modes.obj();
+ modes << (*it).first << clauses.obj();
}
- if( !getLastErrorDefaults.isEmpty() )
- settings << "getLastErrorDefaults" << getLastErrorDefaults;
+ settings << "getLastErrorModes" << modes.obj();
+ empty = false;
+ }
- if (!_chainingAllowed) {
- settings << "chainingAllowed" << _chainingAllowed;
- }
+ if (!getLastErrorDefaults.isEmpty()) {
+ settings << "getLastErrorDefaults" << getLastErrorDefaults;
+ empty = false;
+ }
+
+ if (!_chainingAllowed) {
+ settings << "chainingAllowed" << _chainingAllowed;
+ empty = false;
+ }
+ if (!empty) {
b << "settings" << settings.obj();
}