Skip to content

Commit f6e20c1

Browse files
yuqingChristian Hergert
authored andcommitted
close old connections before reconnect
1 parent 100fc32 commit f6e20c1

File tree

1 file changed

+12
-0
lines changed

1 file changed

+12
-0
lines changed

src/mongoc/mongoc-cluster.c

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2148,6 +2148,7 @@ _mongoc_cluster_reconnect_sharded_cluster (mongoc_cluster_t *cluster,
21482148
RETURN (false);
21492149
}
21502150

2151+
_mongoc_cluster_update_state (cluster);
21512152
RETURN (true);
21522153
}
21532154

@@ -2176,11 +2177,22 @@ _mongoc_cluster_reconnect (mongoc_cluster_t *cluster,
21762177
bson_error_t *error)
21772178
{
21782179
bool ret;
2180+
int i;
21792181

21802182
ENTRY;
21812183

21822184
bson_return_val_if_fail (cluster, false);
21832185

2186+
//close old connections
2187+
for (i = 0; i < MONGOC_CLUSTER_MAX_NODES; i++) {
2188+
if (cluster->nodes [i].stream) {
2189+
mongoc_stream_close(cluster->nodes [i].stream);
2190+
mongoc_stream_destroy(cluster->nodes [i].stream);
2191+
cluster->nodes [i].stream = NULL;
2192+
}
2193+
}
2194+
_mongoc_cluster_update_state (cluster);
2195+
21842196
switch (cluster->mode) {
21852197
case MONGOC_CLUSTER_DIRECT:
21862198
ret = _mongoc_cluster_reconnect_direct (cluster, error);

0 commit comments

Comments
 (0)