summaryrefslogtreecommitdiffstats
path: root/ctdb/libctdb/control.c
diff options
context:
space:
mode:
Diffstat (limited to 'ctdb/libctdb/control.c')
-rw-r--r--ctdb/libctdb/control.c28
1 files changed, 28 insertions, 0 deletions
diff --git a/ctdb/libctdb/control.c b/ctdb/libctdb/control.c
index e18a44ee22..48add207c7 100644
--- a/ctdb/libctdb/control.c
+++ b/ctdb/libctdb/control.c
@@ -23,6 +23,7 @@
/* Remove type-safety macros. */
#undef ctdb_getrecmaster_send
+#undef ctdb_getrecmode_send
#undef ctdb_getpnn_send
#undef ctdb_getnodemap_send
#undef ctdb_getpublicips_send
@@ -54,6 +55,33 @@ struct ctdb_request *ctdb_getrecmaster_send(struct ctdb_connection *ctdb,
callback, private_data);
}
+bool ctdb_getrecmode_recv(struct ctdb_connection *ctdb,
+ struct ctdb_request *req, uint32_t *recmode)
+{
+ struct ctdb_reply_control *reply;
+
+ reply = unpack_reply_control(req, CTDB_CONTROL_GET_RECMODE);
+ if (!reply) {
+ return false;
+ }
+ if (reply->status == -1) {
+ DEBUG(ctdb, LOG_ERR, "ctdb_getrecmode_recv: status -1");
+ return false;
+ }
+ *recmode = reply->status;
+ return true;
+}
+
+struct ctdb_request *ctdb_getrecmode_send(struct ctdb_connection *ctdb,
+ uint32_t destnode,
+ ctdb_callback_t callback,
+ void *private_data)
+{
+ return new_ctdb_control_request(ctdb, CTDB_CONTROL_GET_RECMODE,
+ destnode, NULL, 0,
+ callback, private_data);
+}
+
bool ctdb_getpnn_recv(struct ctdb_connection *ctdb,
struct ctdb_request *req, uint32_t *pnn)
{