diff options
Diffstat (limited to 'ctdb/libctdb/control.c')
-rw-r--r-- | ctdb/libctdb/control.c | 28 |
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) { |