}
int ctdb_reply_control_get_debug(struct ctdb_reply_control *reply,
- uint32_t *loglevel)
+ int *loglevel)
{
if (reply->rdata.opcode != CTDB_CONTROL_GET_DEBUG) {
return EPROTO;
}
if (reply->status == 0) {
- *loglevel = reply->rdata.data.loglevel;
+ *loglevel = (int)reply->rdata.data.loglevel;
}
return reply->status;
}
/* CTDB_CONTROL_SET_DEBUG */
void ctdb_req_control_set_debug(struct ctdb_req_control *request,
- uint32_t loglevel)
+ int loglevel)
{
request->opcode = CTDB_CONTROL_SET_DEBUG;
request->pad = 0;
request->flags = 0;
request->rdata.opcode = CTDB_CONTROL_SET_DEBUG;
- request->rdata.data.loglevel = loglevel;
+ request->rdata.data.loglevel = (uint32_t)loglevel;
}
int ctdb_reply_control_set_debug(struct ctdb_reply_control *reply)
/* CTDB_CONTROL_DB_ATTACH */
void ctdb_req_control_db_attach(struct ctdb_req_control *request,
- const char *db_name, uint32_t tdb_flags)
+ const char *db_name)
{
request->opcode = CTDB_CONTROL_DB_ATTACH;
request->pad = 0;
- request->srvid = tdb_flags;
+ request->srvid = 0;
request->client_id = 0;
request->flags = 0;
/* CTDB_CONTROL_GET_MONMODE */
-void ctdb_req_control_get_monmode(struct ctdb_req_control *request)
-{
- request->opcode = CTDB_CONTROL_GET_MONMODE;
- request->pad = 0;
- request->srvid = 0;
- request->client_id = 0;
- request->flags = 0;
-
- request->rdata.opcode = CTDB_CONTROL_GET_MONMODE;
-}
-
-int ctdb_reply_control_get_monmode(struct ctdb_reply_control *reply,
- int *mon_mode)
-{
- if (reply->rdata.opcode != CTDB_CONTROL_GET_MONMODE) {
- return EPROTO;
- }
-
- if (reply->status >= 0) {
- *mon_mode = reply->status;
- reply->status = 0;
- }
- return reply->status;
-}
-
/* CTDB_CONTROL_TCP_CLIENT */
void ctdb_req_control_tcp_client(struct ctdb_req_control *request,
/* CTDB_CONTROL_DB_ATTACH_PERSISTENT */
void ctdb_req_control_db_attach_persistent(struct ctdb_req_control *request,
- const char *db_name,
- uint32_t tdb_flags)
+ const char *db_name)
{
request->opcode = CTDB_CONTROL_DB_ATTACH_PERSISTENT;
request->pad = 0;
- request->srvid = tdb_flags;
+ request->srvid = 0;
request->client_id = 0;
request->flags = 0;
}
/* CTDB_CONTROL_ENABLE_MONITOR */
-
-void ctdb_req_control_enable_monitor(struct ctdb_req_control *request)
-{
- request->opcode = CTDB_CONTROL_ENABLE_MONITOR;
- request->pad = 0;
- request->srvid = 0;
- request->client_id = 0;
- request->flags = 0;
-
- request->rdata.opcode = CTDB_CONTROL_ENABLE_MONITOR;
-}
-
-int ctdb_reply_control_enable_monitor(struct ctdb_reply_control *reply)
-{
- return ctdb_reply_control_generic(reply, CTDB_CONTROL_ENABLE_MONITOR);
-}
-
/* CTDB_CONTROL_DISABLE_MONITOR */
-void ctdb_req_control_disable_monitor(struct ctdb_req_control *request)
-{
- request->opcode = CTDB_CONTROL_DISABLE_MONITOR;
- request->pad = 0;
- request->srvid = 0;
- request->client_id = 0;
- request->flags = 0;
-
- request->rdata.opcode = CTDB_CONTROL_DISABLE_MONITOR;
-}
-
-int ctdb_reply_control_disable_monitor(struct ctdb_reply_control *reply)
-{
- return ctdb_reply_control_generic(reply, CTDB_CONTROL_DISABLE_MONITOR);
-}
-
/* CTDB_CONTROL_ADD_PUBLIC_IP */
void ctdb_req_control_add_public_ip(struct ctdb_req_control *request,
return ctdb_reply_control_generic(reply, CTDB_CONTROL_DEL_PUBLIC_IP);
}
-/* CTDB_CONTROL_RUN_EVENTSCRIPTS */
-
-void ctdb_req_control_run_eventscripts(struct ctdb_req_control *request,
- const char *event_str)
-{
- request->opcode = CTDB_CONTROL_RUN_EVENTSCRIPTS;
- request->pad = 0;
- request->srvid = 0;
- request->client_id = 0;
- request->flags = 0;
-
- request->rdata.opcode = CTDB_CONTROL_RUN_EVENTSCRIPTS;
- request->rdata.data.event_str = event_str;
-}
-
-int ctdb_reply_control_run_eventscripts(struct ctdb_reply_control *reply)
-{
- return ctdb_reply_control_generic(reply,
- CTDB_CONTROL_RUN_EVENTSCRIPTS);
-}
-
/* CTDB_CONTROL_GET_CAPABILITIES */
void ctdb_req_control_get_capabilities(struct ctdb_req_control *request)
/* CTDB_CONTROL_GET_PUBLIC_IPS */
-void ctdb_req_control_get_public_ips(struct ctdb_req_control *request)
+void ctdb_req_control_get_public_ips(struct ctdb_req_control *request,
+ bool available_only)
{
request->opcode = CTDB_CONTROL_GET_PUBLIC_IPS;
request->pad = 0;
request->flags = 0;
request->rdata.opcode = CTDB_CONTROL_GET_PUBLIC_IPS;
+ if (available_only) {
+ request->flags = CTDB_PUBLIC_IP_FLAGS_ONLY_AVAILABLE;
+ }
}
int ctdb_reply_control_get_public_ips(struct ctdb_reply_control *reply,
return reply->status;
}
-/* CTDB_CONTROL_GET_EVENT_SCRIPT_STATUS */
-
-void ctdb_req_control_get_event_script_status(struct ctdb_req_control *request,
- uint32_t event)
-{
- request->opcode = CTDB_CONTROL_GET_EVENT_SCRIPT_STATUS;
- request->pad = 0;
- request->srvid = 0;
- request->client_id = 0;
- request->flags = 0;
-
- request->rdata.opcode = CTDB_CONTROL_GET_EVENT_SCRIPT_STATUS;
- request->rdata.data.event = event;
-}
-
-int ctdb_reply_control_get_event_script_status(struct ctdb_reply_control *reply,
- TALLOC_CTX *mem_ctx,
- struct ctdb_script_list **slist)
-{
- if (reply->rdata.opcode != CTDB_CONTROL_GET_EVENT_SCRIPT_STATUS) {
- return EPROTO;
- }
-
- if (reply->status == 0) {
- *slist = talloc_steal(mem_ctx, reply->rdata.data.script_list);
- }
- return reply->status;
-}
-
/* CTDB_CONTROL_TRAVERSE_KILL */
void ctdb_req_control_traverse_kill(struct ctdb_req_control *request,
CTDB_CONTROL_SET_RECMASTERROLE);
}
-/* CTDB_CONTROL_ENABLE_SCRIPT */
-
-void ctdb_req_control_enable_script(struct ctdb_req_control *request,
- const char *script)
-{
- request->opcode = CTDB_CONTROL_ENABLE_SCRIPT;
- request->pad = 0;
- request->srvid = 0;
- request->client_id = 0;
- request->flags = 0;
-
- request->rdata.opcode = CTDB_CONTROL_ENABLE_SCRIPT;
- request->rdata.data.script = script;
-}
-
-int ctdb_reply_control_enable_script(struct ctdb_reply_control *reply)
-{
- return ctdb_reply_control_generic(reply, CTDB_CONTROL_ENABLE_SCRIPT);
-}
-
-/* CTDB_CONTROL_DISABLE_SCRIPT */
-
-void ctdb_req_control_disable_script(struct ctdb_req_control *request,
- const char *script)
-{
- request->opcode = CTDB_CONTROL_DISABLE_SCRIPT;
- request->pad = 0;
- request->srvid = 0;
- request->client_id = 0;
- request->flags = 0;
-
- request->rdata.opcode = CTDB_CONTROL_DISABLE_SCRIPT;
- request->rdata.data.script = script;
-}
-
-int ctdb_reply_control_disable_script(struct ctdb_reply_control *reply)
-{
- return ctdb_reply_control_generic(reply, CTDB_CONTROL_DISABLE_SCRIPT);
-}
-
/* CTDB_CONTROL_SET_BAN_STATE */
void ctdb_req_control_set_ban_state(struct ctdb_req_control *request,
/* CTDB_CONTROL_CHECK_SRVIDS */
-void ctdb_req_control_check_srvids(struct ctdb_req_control *request,
- struct ctdb_uint64_array *u64_array)
-{
- request->opcode = CTDB_CONTROL_CHECK_SRVIDS;
- request->pad = 0;
- request->srvid = 0;
- request->client_id = 0;
- request->flags = 0;
-
- request->rdata.opcode = CTDB_CONTROL_CHECK_SRVIDS;
- request->rdata.data.u64_array = u64_array;
-}
-
-int ctdb_reply_control_check_srvids(struct ctdb_reply_control *reply,
- TALLOC_CTX *mem_ctx,
- struct ctdb_uint8_array **u8_array)
-{
- if (reply->rdata.opcode != CTDB_CONTROL_CHECK_SRVIDS) {
- return EPROTO;
- }
-
- if (reply->status == 0) {
- *u8_array = talloc_steal(mem_ctx, reply->rdata.data.u8_array);
- }
- return reply->status;
-}
-
/* CTDB_CONTROL_TRAVERSE_START_EXT */
void ctdb_req_control_traverse_start_ext(struct ctdb_req_control *request,
}
return reply->status;
}
+
+/* CTDB_CONTROL_DB_OPEN_FLAGS */
+
+void ctdb_req_control_db_open_flags(struct ctdb_req_control *request,
+ uint32_t db_id)
+{
+ request->opcode = CTDB_CONTROL_DB_OPEN_FLAGS;
+ request->pad = 0;
+ request->srvid = 0;
+ request->client_id = 0;
+ request->flags = 0;
+
+ request->rdata.opcode = CTDB_CONTROL_DB_OPEN_FLAGS;
+ request->rdata.data.db_id = db_id;
+}
+
+int ctdb_reply_control_db_open_flags(struct ctdb_reply_control *reply,
+ int *tdb_flags)
+{
+ if (reply->rdata.opcode != CTDB_CONTROL_DB_OPEN_FLAGS) {
+ return EPROTO;
+ }
+
+ if (reply->status == 0) {
+ *tdb_flags = reply->rdata.data.tdb_flags;
+ }
+ return reply->status;
+}
+
+/* CTDB_CONTROL_DB_ATTACH_REPLICATED */
+
+void ctdb_req_control_db_attach_replicated(struct ctdb_req_control *request,
+ const char *db_name)
+{
+ request->opcode = CTDB_CONTROL_DB_ATTACH_REPLICATED;
+ request->pad = 0;
+ request->srvid = 0;
+ request->client_id = 0;
+ request->flags = 0;
+
+ request->rdata.opcode = CTDB_CONTROL_DB_ATTACH_REPLICATED;
+ request->rdata.data.db_name = db_name;
+}
+
+int ctdb_reply_control_db_attach_replicated(struct ctdb_reply_control *reply,
+ uint32_t *db_id)
+{
+ if (reply->rdata.opcode != CTDB_CONTROL_DB_ATTACH_REPLICATED) {
+ return EPROTO;
+ }
+ if (reply->status == 0) {
+ *db_id = reply->rdata.data.db_id;
+ }
+ return reply->status;
+}
+
+/* CTDB_CONTROL_CHECK_PID_SRVID */
+
+void ctdb_req_control_check_pid_srvid(struct ctdb_req_control *request,
+ struct ctdb_pid_srvid *pid_srvid)
+{
+ request->opcode = CTDB_CONTROL_CHECK_PID_SRVID;
+ request->pad = 0;
+ request->srvid = 0;
+ request->client_id = 0;
+ request->flags = 0;
+
+ request->rdata.opcode = CTDB_CONTROL_CHECK_PID_SRVID;
+ request->rdata.data.pid_srvid = pid_srvid;
+}
+
+int ctdb_reply_control_check_pid_srvid(struct ctdb_reply_control *reply,
+ int *status)
+{
+ if (reply->rdata.opcode != CTDB_CONTROL_CHECK_PID_SRVID) {
+ return EPROTO;
+ }
+
+ *status = reply->status;
+ reply->status = 0;
+
+ return reply->status;
+}
+
+/* CTDB_CONTROL_TUNNEL_REGISTER */
+
+void ctdb_req_control_tunnel_register(struct ctdb_req_control *request,
+ uint64_t tunnel_id)
+{
+ request->opcode = CTDB_CONTROL_TUNNEL_REGISTER;
+ request->pad = 0;
+ request->srvid = tunnel_id;
+ request->client_id = 0;
+ request->flags = 0;
+}
+
+int ctdb_reply_control_tunnel_register(struct ctdb_reply_control *reply)
+{
+ if (reply->rdata.opcode != CTDB_CONTROL_TUNNEL_REGISTER) {
+ return EPROTO;
+ }
+
+ return reply->status;
+}
+
+/* CTDB_CONTROL_TUNNEL_DEREGISTER */
+
+void ctdb_req_control_tunnel_deregister(struct ctdb_req_control *request,
+ uint64_t tunnel_id)
+{
+ request->opcode = CTDB_CONTROL_TUNNEL_DEREGISTER;
+ request->pad = 0;
+ request->srvid = tunnel_id;
+ request->client_id = 0;
+ request->flags = 0;
+}
+
+int ctdb_reply_control_tunnel_deregister(struct ctdb_reply_control *reply)
+{
+ if (reply->rdata.opcode != CTDB_CONTROL_TUNNEL_DEREGISTER) {
+ return EPROTO;
+ }
+
+ return reply->status;
+}