summaryrefslogtreecommitdiff
path: root/src/mongo/db/repl/replset_commands.cpp
diff options
context:
space:
mode:
authormatt dannenberg <matt.dannenberg@10gen.com>2015-04-22 10:05:56 -0400
committermatt dannenberg <matt.dannenberg@10gen.com>2015-04-24 04:05:21 -0400
commit22596ecf7fc0ef83d8ee7db63d00793b08d8541e (patch)
tree2529c4f38812ea7b28d0e8fcc907bfba38263e93 /src/mongo/db/repl/replset_commands.cpp
parent1655e260f640dadc696684afb6766b86199a665b (diff)
downloadmongo-22596ecf7fc0ef83d8ee7db63d00793b08d8541e.tar.gz
SERVER-18191 make new heartbeat args/response classes for the new election protocol
Diffstat (limited to 'src/mongo/db/repl/replset_commands.cpp')
-rw-r--r--src/mongo/db/repl/replset_commands.cpp40
1 files changed, 28 insertions, 12 deletions
diff --git a/src/mongo/db/repl/replset_commands.cpp b/src/mongo/db/repl/replset_commands.cpp
index d160351c6b0..bedbf59a05a 100644
--- a/src/mongo/db/repl/replset_commands.cpp
+++ b/src/mongo/db/repl/replset_commands.cpp
@@ -46,7 +46,9 @@
#include "mongo/db/repl/initial_sync.h"
#include "mongo/db/repl/oplog.h"
#include "mongo/db/repl/repl_set_heartbeat_args.h"
+#include "mongo/db/repl/repl_set_heartbeat_args_v1.h"
#include "mongo/db/repl/repl_set_heartbeat_response.h"
+#include "mongo/db/repl/repl_set_heartbeat_response_v1.h"
#include "mongo/db/repl/replication_coordinator_global.h"
#include "mongo/db/repl/replication_coordinator_external_state_impl.h"
#include "mongo/db/repl/replication_executor.h"
@@ -710,22 +712,36 @@ namespace {
mp->tag |= ReplicationExecutor::NetworkInterface::kMessagingPortKeepOpen;
}
- ReplSetHeartbeatArgs args;
- status = args.initialize(cmdObj);
- if (!status.isOK()) {
+ if (getGlobalReplicationCoordinator()->isV1ElectionProtocol()) {
+ ReplSetHeartbeatArgsV1 args;
+ status = args.initialize(cmdObj);
+ if (!status.isOK()) {
+ return appendCommandStatus(result, status);
+ }
+ ReplSetHeartbeatResponseV1 response;
+ status = getGlobalReplicationCoordinator()->processHeartbeatV1(args, &response);
+ if (status.isOK())
+ response.addToBSON(&result);
return appendCommandStatus(result, status);
}
+ else {
+ ReplSetHeartbeatArgs args;
+ status = args.initialize(cmdObj);
+ if (!status.isOK()) {
+ return appendCommandStatus(result, status);
+ }
- // ugh.
- if (args.getCheckEmpty()) {
- result.append("hasData", replHasDatabases(txn));
- }
+ // ugh.
+ if (args.getCheckEmpty()) {
+ result.append("hasData", replHasDatabases(txn));
+ }
- ReplSetHeartbeatResponse response;
- status = getGlobalReplicationCoordinator()->processHeartbeat(args, &response);
- if (status.isOK())
- response.addToBSON(&result);
- return appendCommandStatus(result, status);
+ ReplSetHeartbeatResponse response;
+ status = getGlobalReplicationCoordinator()->processHeartbeat(args, &response);
+ if (status.isOK())
+ response.addToBSON(&result);
+ return appendCommandStatus(result, status);
+ }
}
} cmdReplSetHeartbeat;