int ctdb_reply_control_db_push_confirm(struct ctdb_reply_control *reply,
uint32_t *num_records);
+void ctdb_req_control_db_open_flags(struct ctdb_req_control *request,
+ uint32_t db_id);
+int ctdb_reply_control_db_open_flags(struct ctdb_reply_control *reply,
+ int *tdb_flags);
+
/* From protocol/protocol_debug.c */
void ctdb_packet_print(uint8_t *buf, size_t buflen, FILE *fp);
}
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;
+}
case CTDB_CONTROL_DB_PUSH_CONFIRM:
len = ctdb_uint32_len(cd->data.db_id);
break;
+
+ case CTDB_CONTROL_DB_OPEN_FLAGS:
+ len = ctdb_uint32_len(cd->data.db_id);
+ break;
}
return len;
case CTDB_CONTROL_DB_PUSH_CONFIRM:
ctdb_uint32_push(cd->data.db_id, buf);
break;
+
+ case CTDB_CONTROL_DB_OPEN_FLAGS:
+ ctdb_uint32_push(cd->data.db_id, buf);
+ break;
}
}
ret = ctdb_uint32_pull(buf, buflen, mem_ctx,
&cd->data.db_id);
break;
+
+ case CTDB_CONTROL_DB_OPEN_FLAGS:
+ ret = ctdb_uint32_pull(buf, buflen, mem_ctx,
+ &cd->data.db_id);
+ break;
}
return ret;
case CTDB_CONTROL_DB_PUSH_CONFIRM:
len = ctdb_uint32_len(cd->data.num_records);
break;
+
+ case CTDB_CONTROL_DB_OPEN_FLAGS:
+ len = ctdb_int32_len(cd->data.tdb_flags);
+ break;
}
return len;
case CTDB_CONTROL_DB_PUSH_CONFIRM:
ctdb_uint32_push(cd->data.num_records, buf);
break;
+
+ case CTDB_CONTROL_DB_OPEN_FLAGS:
+ ctdb_int32_push(cd->data.tdb_flags, buf);
+ break;
}
}
ret = ctdb_uint32_pull(buf, buflen, mem_ctx,
&cd->data.num_records);
break;
+
+ case CTDB_CONTROL_DB_OPEN_FLAGS:
+ ret = ctdb_int32_pull(buf, buflen, mem_ctx,
+ &cd->data.tdb_flags);
+ break;
}
return ret;
. "${TEST_SCRIPTS_DIR}/unit.sh"
-last_control=148
+last_control=149
control_output=$(
for i in $(seq 0 $last_control) ; do
cd->data.db_id = rand32();
break;
+ case CTDB_CONTROL_DB_OPEN_FLAGS:
+ cd->data.db_id = rand32();
+ break;
+
}
}
assert(cd->data.db_id == cd2->data.db_id);
break;
+ case CTDB_CONTROL_DB_OPEN_FLAGS:
+ assert(cd->data.db_id == cd2->data.db_id);
+ break;
+
}
}
cd->data.num_records = rand32();
break;
+ case CTDB_CONTROL_DB_OPEN_FLAGS:
+ cd->data.tdb_flags = rand32();
+ break;
+
}
}
assert(cd->data.num_records == cd2->data.num_records);
break;
+ case CTDB_CONTROL_DB_OPEN_FLAGS:
+ assert(cd->data.tdb_flags == cd2->data.tdb_flags);
+ break;
+
}
}
talloc_free(mem_ctx);
}
-#define NUM_CONTROLS 149
+#define NUM_CONTROLS 150
static void test_ctdb_req_control_data(void)
{