int ctdb_tdb_data_pull(uint8_t *buf, size_t buflen, TALLOC_CTX *mem_ctx,
TDB_DATA *out, size_t *npull);
+size_t ctdb_tdb_datan_len(TDB_DATA *in);
+void ctdb_tdb_datan_push(TDB_DATA *in, uint8_t *buf, size_t *npush);
+int ctdb_tdb_datan_pull(uint8_t *buf, size_t buflen, TALLOC_CTX *mem_ctx,
+ TDB_DATA *out, size_t *npull);
+
size_t ctdb_statistics_len(struct ctdb_statistics *stats);
void ctdb_statistics_push(struct ctdb_statistics *stats, uint8_t *buf);
int ctdb_statistics_pull(uint8_t *buf, size_t buflen, TALLOC_CTX *mem_ctx,
return 0;
}
+size_t ctdb_tdb_datan_len(TDB_DATA *in)
+{
+ uint32_t u32 = ctdb_tdb_data_len(in);
+
+ return ctdb_uint32_len(&u32) + u32;
+}
+
+void ctdb_tdb_datan_push(TDB_DATA *in, uint8_t *buf, size_t *npush)
+{
+ size_t offset = 0, np;
+ uint32_t u32 = ctdb_tdb_data_len(in);
+
+ ctdb_uint32_push(&u32, buf+offset, &np);
+ offset += np;
+
+ ctdb_tdb_data_push(in, buf+offset, &np);
+ offset += np;
+
+ *npush = offset;
+}
+
+int ctdb_tdb_datan_pull(uint8_t *buf, size_t buflen, TALLOC_CTX *mem_ctx,
+ TDB_DATA *out, size_t *npull)
+{
+ size_t offset = 0, np;
+ uint32_t u32;
+ int ret;
+
+ ret = ctdb_uint32_pull(buf+offset, buflen-offset, &u32, &np);
+ if (ret != 0) {
+ return ret;
+ }
+ offset += np;
+
+ if (buflen-offset < u32) {
+ return EMSGSIZE;
+ }
+
+ ret = ctdb_tdb_data_pull(buf+offset, u32, mem_ctx, out, &np);
+ if (ret != 0) {
+ return ret;
+ }
+ offset += np;
+
+ *npull = offset;
+ return 0;
+}
+
size_t ctdb_statistics_len(struct ctdb_statistics *stats)
{
return sizeof(struct ctdb_statistics);
verify_tdb_data(p1, p2);
}
+void fill_ctdb_tdb_datan(TALLOC_CTX *mem_ctx, TDB_DATA *p)
+{
+ fill_tdb_data(mem_ctx, p);
+}
+
+void verify_ctdb_tdb_datan(TDB_DATA *p1, TDB_DATA *p2)
+{
+ verify_tdb_data(p1, p2);
+}
+
void fill_ctdb_statistics(TALLOC_CTX *mem_ctx, struct ctdb_statistics *p)
{
fill_buffer((uint8_t *)p, sizeof(struct ctdb_statistics));
void fill_ctdb_tdb_data(TALLOC_CTX *mem_ctx, TDB_DATA *p);
void verify_ctdb_tdb_data(TDB_DATA *p1, TDB_DATA *p2);
+void fill_ctdb_tdb_datan(TALLOC_CTX *mem_ctx, TDB_DATA *p);
+void verify_ctdb_tdb_datan(TDB_DATA *p1, TDB_DATA *p2);
+
void fill_ctdb_statistics(TALLOC_CTX *mem_ctx, struct ctdb_statistics *p);
void verify_ctdb_statistics(struct ctdb_statistics *p1,
struct ctdb_statistics *p2);
#include "tests/src/protocol_common.h"
PROTOCOL_TYPE2_TEST(TDB_DATA, ctdb_tdb_data);
+PROTOCOL_TYPE2_TEST(TDB_DATA, ctdb_tdb_datan);
static void test_ctdb_ltdb_header(void)
{
}
TEST_FUNC(ctdb_tdb_data)();
+ TEST_FUNC(ctdb_tdb_datan)();
test_ctdb_ltdb_header();
test_ctdb_g_lock();