Skip to content

Commit 06778c6

Browse files
committed
PHPC-901: False slaveOk URI option should be ignored
1 parent 0c5d4f3 commit 06778c6

File tree

2 files changed

+6
-1
lines changed

2 files changed

+6
-1
lines changed

php_phongo.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1081,7 +1081,7 @@ static bool php_phongo_apply_rp_options_to_uri(mongoc_uri_t *uri, bson_t *option
10811081

10821082
new_rp = mongoc_read_prefs_copy(old_rp);
10831083

1084-
if (bson_iter_init_find_case(&iter, options, "slaveok") && BSON_ITER_HOLDS_BOOL(&iter)) {
1084+
if (bson_iter_init_find_case(&iter, options, "slaveok") && BSON_ITER_HOLDS_BOOL(&iter) && bson_iter_bool(&iter)) {
10851085
mongoc_read_prefs_set_mode(new_rp, MONGOC_READ_SECONDARY_PREFERRED);
10861086
}
10871087

tests/manager/manager-ctor-read_preference-004.phpt

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ $tests = [
1111
['mongodb://127.0.0.1/?readPreference=nearest', ['slaveok' => true]],
1212
// False array option is ignored
1313
['mongodb://127.0.0.1/?slaveok=true', ['slaveok' => false]],
14+
['mongodb://127.0.0.1/?readPreference=nearest', ['slaveok' => false]],
1415
// readPreference option takes priority
1516
['mongodb://127.0.0.1/?slaveok=true&readPreference=nearest', []],
1617
['mongodb://127.0.0.1/?slaveok=false&readPreference=nearest', []],
@@ -86,6 +87,10 @@ object(MongoDB\Driver\ReadPreference)#%d (%d) {
8687
["mode"]=>
8788
string(7) "nearest"
8889
}
90+
object(MongoDB\Driver\ReadPreference)#%d (%d) {
91+
["mode"]=>
92+
string(7) "nearest"
93+
}
8994
object(MongoDB\Driver\ReadPreference)#%d (%d) {
9095
["mode"]=>
9196
string(18) "secondaryPreferred"

0 commit comments

Comments
 (0)