diff options
Diffstat (limited to 'src/mongo/db/repl/repl_set_request_votes.cpp')
-rw-r--r-- | src/mongo/db/repl/repl_set_request_votes.cpp | 19 |
1 files changed, 11 insertions, 8 deletions
diff --git a/src/mongo/db/repl/repl_set_request_votes.cpp b/src/mongo/db/repl/repl_set_request_votes.cpp index 4b34c351769..c01628466c0 100644 --- a/src/mongo/db/repl/repl_set_request_votes.cpp +++ b/src/mongo/db/repl/repl_set_request_votes.cpp @@ -35,6 +35,8 @@ #include "mongo/db/repl/repl_set_request_votes_args.h" #include "mongo/db/repl/replication_coordinator_global.h" #include "mongo/executor/network_interface.h" +#include "mongo/transport/session.h" +#include "mongo/transport/transport_layer.h" #include "mongo/util/scopeguard.h" namespace mongo { @@ -64,16 +66,17 @@ private: // We want to keep request vote connection open when relinquishing primary. // Tag it here. - unsigned originalTag = 0; - AbstractMessagingPort* mp = txn->getClient()->port(); - if (mp) { - originalTag = mp->getTag(); - mp->setTag(originalTag | executor::NetworkInterface::kMessagingPortKeepOpen); + transport::Session::TagMask originalTag = 0; + transport::Session* session = txn->getClient()->session(); + if (session) { + originalTag = session->getTags(); + session->replaceTags(originalTag | transport::Session::kKeepOpen); } + // Untag the connection on exit. - ON_BLOCK_EXIT([mp, originalTag]() { - if (mp) { - mp->setTag(originalTag); + ON_BLOCK_EXIT([session, originalTag]() { + if (session) { + session->replaceTags(originalTag); } }); |