summaryrefslogtreecommitdiff
path: root/src/mongo/db/repl/repl_set_request_votes.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mongo/db/repl/repl_set_request_votes.cpp')
-rw-r--r--src/mongo/db/repl/repl_set_request_votes.cpp19
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);
}
});