Skip to content

Commit 4df4560

Browse files
committed
CDRIVER-2425 authSource from TXT record is ignored
1 parent 6b376b2 commit 4df4560

File tree

4 files changed

+22
-13
lines changed

4 files changed

+22
-13
lines changed

src/mongoc/mongoc-client-pool.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -220,7 +220,7 @@ mongoc_client_pool_pop (mongoc_client_pool_t *pool)
220220
again:
221221
if (!(client = (mongoc_client_t *) _mongoc_queue_pop_head (&pool->queue))) {
222222
if (pool->size < pool->max_pool_size) {
223-
client = _mongoc_client_new_from_uri (pool->uri, pool->topology);
223+
client = _mongoc_client_new_from_uri (pool->topology);
224224

225225
/* for tests */
226226
mongoc_client_set_stream_initiator (
@@ -263,7 +263,7 @@ mongoc_client_pool_try_pop (mongoc_client_pool_t *pool)
263263

264264
if (!(client = (mongoc_client_t *) _mongoc_queue_pop_head (&pool->queue))) {
265265
if (pool->size < pool->max_pool_size) {
266-
client = _mongoc_client_new_from_uri (pool->uri, pool->topology);
266+
client = _mongoc_client_new_from_uri (pool->topology);
267267
#ifdef MONGOC_ENABLE_SSL
268268
if (pool->ssl_opts_set) {
269269
mongoc_client_set_ssl_opts (client, &pool->ssl_opts);

src/mongoc/mongoc-client-private.h

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -125,8 +125,7 @@ _mongoc_client_get_rr (const char *service,
125125
bson_error_t *error);
126126

127127
mongoc_client_t *
128-
_mongoc_client_new_from_uri (const mongoc_uri_t *uri,
129-
mongoc_topology_t *topology);
128+
_mongoc_client_new_from_uri (mongoc_topology_t *topology);
130129

131130
bool
132131
_mongoc_client_set_apm_callbacks_private (mongoc_client_t *client,

src/mongoc/mongoc-client.c

Lines changed: 7 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -895,7 +895,7 @@ mongoc_client_new (const char *uri_string)
895895

896896
topology = mongoc_topology_new (uri, true);
897897

898-
client = _mongoc_client_new_from_uri (uri, topology);
898+
client = _mongoc_client_new_from_uri (topology);
899899
if (!client) {
900900
mongoc_topology_destroy (topology);
901901
}
@@ -969,16 +969,15 @@ mongoc_client_new_from_uri (const mongoc_uri_t *uri)
969969
* then mongoc_topology_new has fetched SRV and TXT records and updated its
970970
* uri from them.
971971
*/
972-
return _mongoc_client_new_from_uri (topology->uri, topology);
972+
return _mongoc_client_new_from_uri (topology);
973973
}
974974

975975
/*
976976
*--------------------------------------------------------------------------
977977
*
978978
* _mongoc_client_new_from_uri --
979979
*
980-
* Create a new mongoc_client_t for a mongoc_uri_t and a given
981-
* topology object.
980+
* Create a new mongoc_client_t for a given topology object.
982981
*
983982
* Returns:
984983
* A newly allocated mongoc_client_t.
@@ -990,26 +989,25 @@ mongoc_client_new_from_uri (const mongoc_uri_t *uri)
990989
*/
991990

992991
mongoc_client_t *
993-
_mongoc_client_new_from_uri (const mongoc_uri_t *uri,
994-
mongoc_topology_t *topology)
992+
_mongoc_client_new_from_uri (mongoc_topology_t *topology)
995993
{
996994
mongoc_client_t *client;
997995
const mongoc_read_prefs_t *read_prefs;
998996
const mongoc_read_concern_t *read_concern;
999997
const mongoc_write_concern_t *write_concern;
1000998
const char *appname;
1001999

1002-
BSON_ASSERT (uri);
1000+
BSON_ASSERT (topology);
10031001

10041002
#ifndef MONGOC_ENABLE_SSL
1005-
if (mongoc_uri_get_ssl (uri)) {
1003+
if (mongoc_uri_get_ssl (topology->uri)) {
10061004
MONGOC_ERROR ("Can't create SSL client, SSL not enabled in this build.");
10071005
return NULL;
10081006
}
10091007
#endif
10101008

10111009
client = (mongoc_client_t *) bson_malloc0 (sizeof *client);
1012-
client->uri = mongoc_uri_copy (uri);
1010+
client->uri = mongoc_uri_copy (topology->uri);
10131011
client->initiator = mongoc_client_default_stream_initiator;
10141012
client->initiator_data = client;
10151013
client->topology = topology;

tests/test-mongoc-dns.c

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -249,6 +249,18 @@ _test_dns_maybe_pooled (bson_t *test, bool pooled)
249249

250250
_assert_options_match (test, client);
251251

252+
/* the client has a copy of the topology's URI, assert they're the same */
253+
ASSERT (bson_equal (mongoc_uri_get_options (client->uri),
254+
mongoc_uri_get_options (client->topology->uri)));
255+
ASSERT (bson_equal (mongoc_uri_get_credentials (client->uri),
256+
mongoc_uri_get_credentials (client->topology->uri)));
257+
if (!mongoc_uri_get_hosts (client->uri)) {
258+
ASSERT (!mongoc_uri_get_hosts (client->topology->uri));
259+
} else {
260+
_mongoc_host_list_equal (mongoc_uri_get_hosts (client->uri),
261+
mongoc_uri_get_hosts (client->topology->uri));
262+
}
263+
252264
if (pooled) {
253265
mongoc_client_pool_push (pool, client);
254266
mongoc_client_pool_destroy (pool);

0 commit comments

Comments
 (0)