Skip to content
This repository has been archived by the owner on Feb 1, 2022. It is now read-only.

Commit

Permalink
Merge pull request #850
Browse files Browse the repository at this point in the history
  • Loading branch information
jmikola committed May 8, 2015
2 parents 052d55a + dca6ad1 commit 263395c
Show file tree
Hide file tree
Showing 3 changed files with 21 additions and 25 deletions.
16 changes: 6 additions & 10 deletions mcon/parse.c
Original file line number Diff line number Diff line change
Expand Up @@ -481,7 +481,7 @@ int mongo_store_option(mongo_con_manager *manager, mongo_servers *servers, char
} else {
servers->options.default_fsync = 0;
}
mongo_manager_log(manager, MLOG_PARSE, MLOG_INFO, "- Found option 'fsync': %d", servers->options.default_fsync);
mongo_manager_log(manager, MLOG_PARSE, MLOG_INFO, "- Found option 'fsync': '%s' (parsed as: %s)", option_value, servers->options.default_fsync ? "true" : "false");
return 0;
}

Expand All @@ -491,7 +491,7 @@ int mongo_store_option(mongo_con_manager *manager, mongo_servers *servers, char
} else {
servers->options.default_journal = 0;
}
mongo_manager_log(manager, MLOG_PARSE, MLOG_INFO, "- Found option 'journal': %d", servers->options.default_journal);
mongo_manager_log(manager, MLOG_PARSE, MLOG_INFO, "- Found option 'journal': '%s' (parsed as: %s)", option_value, servers->options.default_journal ? "true" : "false");
return 0;
}

Expand Down Expand Up @@ -612,23 +612,19 @@ int mongo_store_option(mongo_con_manager *manager, mongo_servers *servers, char
}

if (strcasecmp(option_name, "ssl") == 0) {
int value = 0;
if (strcasecmp(option_value, "true") == 0 || strcmp(option_value, "1") == 0) {
value = MONGO_SSL_ENABLE;
mongo_manager_log(manager, MLOG_PARSE, MLOG_INFO, "- Found option 'ssl': true");
servers->options.ssl = MONGO_SSL_ENABLE;
} else if (strcasecmp(option_value, "prefer") == 0 || atoi(option_value) == MONGO_SSL_PREFER) {
/* FIXME: MongoDB doesn't support "connection promotion" to SSL at
* the moment, so we can't support this option properly */
value = MONGO_SSL_PREFER;
mongo_manager_log(manager, MLOG_PARSE, MLOG_INFO, "- Found option 'ssl': prefer");
mongo_manager_log(manager, MLOG_PARSE, MLOG_INFO, "- Found option 'ssl': '%s'", option_value);
*error_message = strdup("SSL=prefer is currently not supported by mongod");
return 3;
} else {
value = MONGO_SSL_DISABLE;
mongo_manager_log(manager, MLOG_PARSE, MLOG_INFO, "- Found option 'ssl': false");
servers->options.ssl = MONGO_SSL_DISABLE;
}

servers->options.ssl = value;
mongo_manager_log(manager, MLOG_PARSE, MLOG_INFO, "- Found option 'ssl': '%s' (parsed as: %s)", option_value, servers->options.ssl ? "true" : "false");
return 0;
}

Expand Down
22 changes: 11 additions & 11 deletions tests/no-servers/mongoclient-ssl-001.phpt
Original file line number Diff line number Diff line change
Expand Up @@ -27,17 +27,17 @@ new MongoClient('mongodb://localhost:27017/', array('ssl' => false, 'connect' =>
===DONE===
--EXPECT--
Testing ssl=true:
- Found option 'ssl': true
- Found option 'ssl': true
- Found option 'ssl': true
- Found option 'ssl': true
- Found option 'ssl': true
- Found option 'ssl': 'true' (parsed as: true)
- Found option 'ssl': '1' (parsed as: true)
- Found option 'ssl': 'true' (parsed as: true)
- Found option 'ssl': '1' (parsed as: true)
- Found option 'ssl': '1' (parsed as: true)

Testing ssl=false:
- Found option 'ssl': false
- Found option 'ssl': false
- Found option 'ssl': false
- Found option 'ssl': false
- Found option 'ssl': false
- Found option 'ssl': false
- Found option 'ssl': 'false' (parsed as: false)
- Found option 'ssl': '0' (parsed as: false)
- Found option 'ssl': '' (parsed as: false)
- Found option 'ssl': 'false' (parsed as: false)
- Found option 'ssl': '0' (parsed as: false)
- Found option 'ssl': '' (parsed as: false)
===DONE===
8 changes: 4 additions & 4 deletions tests/no-servers/mongoclient-ssl_error-001.phpt
Original file line number Diff line number Diff line change
Expand Up @@ -38,12 +38,12 @@ try {
===DONE===
--EXPECT--
Testing ssl=prefer:
- Found option 'ssl': prefer
- Found option 'ssl': 'prefer'
Exception: SSL=prefer is currently not supported by mongod
- Found option 'ssl': prefer
- Found option 'ssl': '2'
Exception: SSL=prefer is currently not supported by mongod
- Found option 'ssl': prefer
- Found option 'ssl': 'prefer'
Exception: SSL=prefer is currently not supported by mongod
- Found option 'ssl': prefer
- Found option 'ssl': '2'
Exception: SSL=prefer is currently not supported by mongod
===DONE===

0 comments on commit 263395c

Please sign in to comment.