/* SRVID prefix used during recovery for pulling and pushing databases */
#define CTDB_SRVID_RECOVERY 0xF001000000000000LL
+/* SRVID to assign of banning credits */
+#define CTDB_SRVID_BANNING 0xF002000000000000LL
+
/* SRVID to inform of election data */
#define CTDB_SRVID_ELECTION 0xF100000000000000LL
uint32_t db_id;
/* SRVID_MEM_DUMP, SRVID_TAKEOVER_RUN */
struct ctdb_srvid_message *msg;
- /* SRVID_REBALANCE_NODE */
+ /* SRVID_BANNING, SRVID_REBALANCE_NODE */
uint32_t pnn;
/* SRVID_DISABLE_TAKEOVER_RUNS, SRVID_DISABLE_RECOVERIES */
struct ctdb_disable_message *disable;
} else if ((srvid & prefix) == CTDB_SRVID_RECOVERY) {
srvid = srvid & ~CTDB_SRVID_RECOVERY;
fprintf(fp, "RECOVERY-%"PRIx64"", srvid);
+ } else if (srvid == CTDB_SRVID_BANNING) {
+ fprintf(fp, "BANNING");
} else if (srvid == CTDB_SRVID_ELECTION) {
fprintf(fp, "ELECTION");
} else if (srvid == CTDB_SRVID_RECONFIGURE) {
size_t len = 0;
switch (srvid) {
+ case CTDB_SRVID_BANNING:
+ len = ctdb_uint32_len(mdata->pnn);
+ break;
+
case CTDB_SRVID_ELECTION:
len = ctdb_election_message_len(mdata->election);
break;
uint64_t srvid, uint8_t *buf)
{
switch (srvid) {
+ case CTDB_SRVID_BANNING:
+ ctdb_uint32_push(mdata->pnn, buf);
+ break;
+
case CTDB_SRVID_ELECTION:
ctdb_election_message_push(mdata->election, buf);
break;
int ret = 0;
switch (srvid) {
+ case CTDB_SRVID_BANNING:
+ ret = ctdb_uint32_pull(buf, buflen, mem_ctx, &mdata->pnn);
+ break;
+
case CTDB_SRVID_ELECTION:
ret = ctdb_election_message_pull(buf, buflen, mem_ctx,
&mdata->election);