* votequorum global config vars
*/
-#define DEFAULT_QDEVICE_TIMEOUT 10000
-static char qdevice_name[VOTEQUORUM_MAX_QDEVICE_NAME_LEN];
+static char qdevice_name[VOTEQUORUM_QDEVICE_MAX_NAME_LEN];
static struct cluster_node *qdevice = NULL;
-static unsigned int qdevice_timeout = DEFAULT_QDEVICE_TIMEOUT;
+static unsigned int qdevice_timeout = VOTEQUORUM_QDEVICE_DEFAULT_TIMEOUT;
static uint8_t qdevice_can_operate = 1;
static void *qdevice_reg_conn = NULL;
static uint8_t qdevice_master_wins = 0;
struct req_exec_quorum_qdevice_reg {
struct qb_ipc_request_header header __attribute__((aligned(8)));
uint32_t operation;
- char qdevice_name[VOTEQUORUM_MAX_QDEVICE_NAME_LEN];
+ char qdevice_name[VOTEQUORUM_QDEVICE_MAX_NAME_LEN];
} __attribute__((packed));
struct req_exec_quorum_qdevice_reconfigure {
struct qb_ipc_request_header header __attribute__((aligned(8)));
- char oldname[VOTEQUORUM_MAX_QDEVICE_NAME_LEN];
- char newname[VOTEQUORUM_MAX_QDEVICE_NAME_LEN];
+ char oldname[VOTEQUORUM_QDEVICE_MAX_NAME_LEN];
+ char newname[VOTEQUORUM_QDEVICE_MAX_NAME_LEN];
} __attribute__((packed));
/*
#define NODE_FLAGS_QDEVICE_CAST_VOTE 64
#define NODE_FLAGS_QDEVICE_MASTER_WINS 128
-#define NODEID_QDEVICE 0
-
typedef enum {
NODESTATE_MEMBER=1,
NODESTATE_DEAD,
memset(cl, 0, sizeof(struct cluster_node));
cl->node_id = nodeid;
- if (nodeid != NODEID_QDEVICE) {
+ if (nodeid != VOTEQUORUM_QDEVICE_NODEID) {
node_add_ordered(cl);
}
return us;
}
- if (nodeid == NODEID_QDEVICE) {
+ if (nodeid == VOTEQUORUM_QDEVICE_NODEID) {
LEAVE();
return qdevice;
}
*qdevice_votes = -1;
}
if (icmap_get_uint32("quorum.device.timeout", &qdevice_timeout) != CS_OK) {
- qdevice_timeout = DEFAULT_QDEVICE_TIMEOUT;
+ qdevice_timeout = VOTEQUORUM_QDEVICE_DEFAULT_TIMEOUT;
}
update_qdevice_can_operate(1);
return 1;
* activate new config
*/
votequorum_exec_send_nodeinfo(us->node_id);
- votequorum_exec_send_nodeinfo(NODEID_QDEVICE);
+ votequorum_exec_send_nodeinfo(VOTEQUORUM_QDEVICE_NODEID);
LEAVE();
}
req_exec_quorum_nodeinfo.votes = node->votes;
req_exec_quorum_nodeinfo.expected_votes = node->expected_votes;
req_exec_quorum_nodeinfo.flags = node->flags;
- if (nodeid != NODEID_QDEVICE) {
+ if (nodeid != VOTEQUORUM_QDEVICE_NODEID) {
decode_flags(node->flags);
}
res_lib_votequorum_notification->node_list[i++].state = node->state;
}
if (us->flags & NODE_FLAGS_QDEVICE_REGISTERED) {
- res_lib_votequorum_notification->node_list[i].nodeid = NODEID_QDEVICE;
+ res_lib_votequorum_notification->node_list[i].nodeid = VOTEQUORUM_QDEVICE_NODEID;
res_lib_votequorum_notification->node_list[i++].state = qdevice->state;
}
res_lib_votequorum_notification->header.id = MESSAGE_RES_VOTEQUORUM_NOTIFICATION;
if (!strcmp(req_exec_quorum_qdevice_reconfigure->oldname, qdevice_name)) {
log_printf(LOGSYS_LEVEL_DEBUG, "Allowing qdevice rename");
- memset(qdevice_name, 0, VOTEQUORUM_MAX_QDEVICE_NAME_LEN);
+ memset(qdevice_name, 0, VOTEQUORUM_QDEVICE_MAX_NAME_LEN);
strcpy(qdevice_name, req_exec_quorum_qdevice_reconfigure->newname);
/*
* TODO: notify qdevices about name change?
* check if it is our device or something else
*/
if ((!strncmp(req_exec_quorum_qdevice_reg->qdevice_name,
- qdevice_name, VOTEQUORUM_MAX_QDEVICE_NAME_LEN))) {
+ qdevice_name, VOTEQUORUM_QDEVICE_MAX_NAME_LEN))) {
us->flags |= NODE_FLAGS_QDEVICE_REGISTERED;
- votequorum_exec_send_nodeinfo(NODEID_QDEVICE);
+ votequorum_exec_send_nodeinfo(VOTEQUORUM_QDEVICE_NODEID);
votequorum_exec_send_nodeinfo(us->node_id);
} else {
log_printf(LOGSYS_LEVEL_WARNING,
}
if (wipe_qdevice_name) {
- memset(qdevice_name, 0, VOTEQUORUM_MAX_QDEVICE_NAME_LEN);
+ memset(qdevice_name, 0, VOTEQUORUM_QDEVICE_MAX_NAME_LEN);
}
break;
req_exec_quorum_nodeinfo->expected_votes,
req_exec_quorum_nodeinfo->flags);
- if (nodeid != NODEID_QDEVICE) {
+ if (nodeid != VOTEQUORUM_QDEVICE_NODEID) {
decode_flags(req_exec_quorum_nodeinfo->flags);
}
old_flags = node->flags;
}
- if (nodeid == NODEID_QDEVICE) {
+ if (nodeid == VOTEQUORUM_QDEVICE_NODEID) {
struct cluster_node *sender_node = find_node_by_nodeid(sender_nodeid);
if ((!cluster_is_quorate) &&
(sender_node->flags & NODE_FLAGS_QUORATE)) {
/*
* Allocate a cluster_node for qdevice
*/
- qdevice = allocate_node(NODEID_QDEVICE);
+ qdevice = allocate_node(VOTEQUORUM_QDEVICE_NODEID);
if (!qdevice) {
LEAVE();
return ((char *)"Could not allocate node.");
}
qdevice->votes = 0;
- memset(qdevice_name, 0, VOTEQUORUM_MAX_QDEVICE_NAME_LEN);
+ memset(qdevice_name, 0, VOTEQUORUM_QDEVICE_MAX_NAME_LEN);
/*
* Allocate a cluster_node for us
memcpy(quorum_members, member_list, sizeof(unsigned int) * member_list_entries);
quorum_members_entries = member_list_entries;
votequorum_exec_send_nodeinfo(us->node_id);
- votequorum_exec_send_nodeinfo(NODEID_QDEVICE);
+ votequorum_exec_send_nodeinfo(VOTEQUORUM_QDEVICE_NODEID);
if (strlen(qdevice_name)) {
votequorum_exec_send_qdevice_reg(VOTEQUORUM_QDEVICE_OPERATION_REGISTER,
qdevice_name);
log_printf(LOGSYS_LEVEL_DEBUG, "got getinfo request on %p for node %u", conn, req_lib_votequorum_getinfo->nodeid);
- if (nodeid == NODEID_QDEVICE) {
+ if (nodeid == VOTEQUORUM_QDEVICE_NODEID) {
nodeid = us->node_id;
}
res_lib_votequorum_getinfo.flags |= VOTEQUORUM_INFO_ALLOW_DOWNSCALE;
}
- memset(res_lib_votequorum_getinfo.qdevice_name, 0, VOTEQUORUM_MAX_QDEVICE_NAME_LEN);
+ memset(res_lib_votequorum_getinfo.qdevice_name, 0, VOTEQUORUM_QDEVICE_MAX_NAME_LEN);
res_lib_votequorum_getinfo.qdevice_votes = 0;
if (node->flags & NODE_FLAGS_QDEVICE_REGISTERED) {
if (us->flags & NODE_FLAGS_QDEVICE_REGISTERED) {
if ((!strncmp(req_lib_votequorum_qdevice_register->name,
- qdevice_name, VOTEQUORUM_MAX_QDEVICE_NAME_LEN))) {
+ qdevice_name, VOTEQUORUM_QDEVICE_MAX_NAME_LEN))) {
goto out;
} else {
log_printf(LOGSYS_LEVEL_WARNING,
ENTER();
if (us->flags & NODE_FLAGS_QDEVICE_REGISTERED) {
- if (strncmp(req_lib_votequorum_qdevice_unregister->name, qdevice_name, VOTEQUORUM_MAX_QDEVICE_NAME_LEN)) {
+ if (strncmp(req_lib_votequorum_qdevice_unregister->name, qdevice_name, VOTEQUORUM_QDEVICE_MAX_NAME_LEN)) {
error = CS_ERR_INVALID_PARAM;
goto out;
}
ENTER();
if (us->flags & NODE_FLAGS_QDEVICE_REGISTERED) {
- if (strncmp(req_lib_votequorum_qdevice_update->oldname, qdevice_name, VOTEQUORUM_MAX_QDEVICE_NAME_LEN)) {
+ if (strncmp(req_lib_votequorum_qdevice_update->oldname, qdevice_name, VOTEQUORUM_QDEVICE_MAX_NAME_LEN)) {
error = CS_ERR_INVALID_PARAM;
goto out;
}
}
if (us->flags & NODE_FLAGS_QDEVICE_REGISTERED) {
- if (strncmp(req_lib_votequorum_qdevice_poll->name, qdevice_name, VOTEQUORUM_MAX_QDEVICE_NAME_LEN)) {
+ if (strncmp(req_lib_votequorum_qdevice_poll->name, qdevice_name, VOTEQUORUM_QDEVICE_MAX_NAME_LEN)) {
error = CS_ERR_INVALID_PARAM;
goto out;
}
}
if (us->flags & NODE_FLAGS_QDEVICE_REGISTERED) {
- if (strncmp(req_lib_votequorum_qdevice_master_wins->name, qdevice_name, VOTEQUORUM_MAX_QDEVICE_NAME_LEN)) {
+ if (strncmp(req_lib_votequorum_qdevice_master_wins->name, qdevice_name, VOTEQUORUM_QDEVICE_MAX_NAME_LEN)) {
error = CS_ERR_INVALID_PARAM;
goto out;
}
#define IPC_VOTEQUORUM_H_DEFINED
#include <corosync/mar_gen.h>
-#define VOTEQUORUM_MAX_QDEVICE_NAME_LEN 255
+#define VOTEQUORUM_QDEVICE_NODEID 0
+#define VOTEQUORUM_QDEVICE_MAX_NAME_LEN 255
+#define VOTEQUORUM_QDEVICE_DEFAULT_TIMEOUT 10000
enum req_votequorum_types {
MESSAGE_REQ_VOTEQUORUM_GETINFO = 0,
struct req_lib_votequorum_qdevice_register {
struct qb_ipc_request_header header __attribute__((aligned(8)));
- char name[VOTEQUORUM_MAX_QDEVICE_NAME_LEN];
+ char name[VOTEQUORUM_QDEVICE_MAX_NAME_LEN];
};
struct req_lib_votequorum_qdevice_unregister {
struct qb_ipc_request_header header __attribute__((aligned(8)));
- char name[VOTEQUORUM_MAX_QDEVICE_NAME_LEN];
+ char name[VOTEQUORUM_QDEVICE_MAX_NAME_LEN];
};
struct req_lib_votequorum_qdevice_update {
struct qb_ipc_request_header header __attribute__((aligned(8)));
- char oldname[VOTEQUORUM_MAX_QDEVICE_NAME_LEN];
- char newname[VOTEQUORUM_MAX_QDEVICE_NAME_LEN];
+ char oldname[VOTEQUORUM_QDEVICE_MAX_NAME_LEN];
+ char newname[VOTEQUORUM_QDEVICE_MAX_NAME_LEN];
};
struct req_lib_votequorum_qdevice_poll {
struct qb_ipc_request_header header __attribute__((aligned(8)));
- char name[VOTEQUORUM_MAX_QDEVICE_NAME_LEN];
+ char name[VOTEQUORUM_QDEVICE_MAX_NAME_LEN];
int cast_vote;
};
struct req_lib_votequorum_qdevice_master_wins {
struct qb_ipc_request_header header __attribute__((aligned(8)));
- char name[VOTEQUORUM_MAX_QDEVICE_NAME_LEN];
+ char name[VOTEQUORUM_QDEVICE_MAX_NAME_LEN];
unsigned int allow;
};
unsigned int quorum;
unsigned int flags;
unsigned int qdevice_votes;
- char qdevice_name[VOTEQUORUM_MAX_QDEVICE_NAME_LEN];
+ char qdevice_name[VOTEQUORUM_QDEVICE_MAX_NAME_LEN];
};
struct votequorum_node {
info->quorum = res_lib_votequorum_getinfo.quorum;
info->flags = res_lib_votequorum_getinfo.flags;
info->qdevice_votes = res_lib_votequorum_getinfo.qdevice_votes;
- memset(info->qdevice_name, 0, VOTEQUORUM_MAX_QDEVICE_NAME_LEN);
+ memset(info->qdevice_name, 0, VOTEQUORUM_QDEVICE_MAX_NAME_LEN);
strcpy(info->qdevice_name, res_lib_votequorum_getinfo.qdevice_name);
error_exit:
struct res_lib_votequorum_status res_lib_votequorum_status;
if ((strlen(name) == 0) ||
- (strlen(name) >= VOTEQUORUM_MAX_QDEVICE_NAME_LEN)) {
+ (strlen(name) >= VOTEQUORUM_QDEVICE_MAX_NAME_LEN)) {
return CS_ERR_INVALID_PARAM;
}
struct res_lib_votequorum_status res_lib_votequorum_status;
if ((strlen(name) == 0) ||
- (strlen(name) >= VOTEQUORUM_MAX_QDEVICE_NAME_LEN)) {
+ (strlen(name) >= VOTEQUORUM_QDEVICE_MAX_NAME_LEN)) {
return CS_ERR_INVALID_PARAM;
}
struct res_lib_votequorum_status res_lib_votequorum_status;
if ((strlen(name) == 0) ||
- (strlen(name) >= VOTEQUORUM_MAX_QDEVICE_NAME_LEN)) {
+ (strlen(name) >= VOTEQUORUM_QDEVICE_MAX_NAME_LEN)) {
return CS_ERR_INVALID_PARAM;
}
struct res_lib_votequorum_status res_lib_votequorum_status;
if ((strlen(oldname) == 0) ||
- (strlen(oldname) >= VOTEQUORUM_MAX_QDEVICE_NAME_LEN) ||
+ (strlen(oldname) >= VOTEQUORUM_QDEVICE_MAX_NAME_LEN) ||
(strlen(newname) == 0) ||
- (strlen(newname) >= VOTEQUORUM_MAX_QDEVICE_NAME_LEN)) {
+ (strlen(newname) >= VOTEQUORUM_QDEVICE_MAX_NAME_LEN)) {
return CS_ERR_INVALID_PARAM;
}
struct res_lib_votequorum_status res_lib_votequorum_status;
if ((strlen(name) == 0) ||
- (strlen(name) >= VOTEQUORUM_MAX_QDEVICE_NAME_LEN)) {
+ (strlen(name) >= VOTEQUORUM_QDEVICE_MAX_NAME_LEN)) {
return CS_ERR_INVALID_PARAM;
}