} data;
};
-struct ctdb_event_header {
- uint32_t length;
- uint32_t reqid;
-};
-
struct ctdb_event_request {
struct sock_packet_header header;
struct ctdb_event_request_data rdata;
/* From protocol/protocol_event.c */
-void ctdb_event_header_fill(struct ctdb_event_header *h, uint32_t reqid);
-
size_t ctdb_event_request_len(struct ctdb_event_request *in);
int ctdb_event_request_push(struct ctdb_event_request *in,
return 0;
}
-size_t ctdb_event_header_len(struct ctdb_event_header *in);
-void ctdb_event_header_push(struct ctdb_event_header *in, uint8_t *buf,
- size_t *npush);
-int ctdb_event_header_pull(uint8_t *buf, size_t buflen, TALLOC_CTX *mem_ctx,
- struct ctdb_event_header *out, size_t *npull);
-
-size_t ctdb_event_header_len(struct ctdb_event_header *in)
-{
- return ctdb_uint32_len(&in->length) + ctdb_uint32_len(&in->reqid);
-}
-
-void ctdb_event_header_push(struct ctdb_event_header *in, uint8_t *buf,
- size_t *npush)
-{
- size_t offset = 0, np;
-
- ctdb_uint32_push(&in->length, buf, &np);
- offset += np;
-
- ctdb_uint32_push(&in->reqid, buf+offset, &np);
- offset += np;
-
- *npush = offset;
-}
-
-int ctdb_event_header_pull(uint8_t *buf, size_t buflen, TALLOC_CTX *mem_ctx,
- struct ctdb_event_header *out, size_t *npull)
-{
- size_t offset = 0, np;
- int ret;
-
- ret = ctdb_uint32_pull(buf, buflen, &out->length, &np);
- if (ret != 0) {
- return ret;
- }
- offset += np;
-
- ret = ctdb_uint32_pull(buf+offset, buflen-offset, &out->reqid, &np);
- if (ret != 0) {
- return ret;
- }
- offset += np;
-
- *npull = offset;
- return 0;
-}
-
-void ctdb_event_header_fill(struct ctdb_event_header *h, uint32_t reqid)
-{
- h->length = ctdb_event_header_len(h);
- h->reqid = reqid;
-}
-
size_t ctdb_event_request_len(struct ctdb_event_request *in)
{
return sock_packet_header_len(&in->header) +
}
output=$(
- echo "ctdb_event_header"
generate_output "ctdb_event_request_data"
generate_output "ctdb_event_reply_data"
generate_output "ctdb_event_request"
}
}
-void fill_ctdb_event_header(struct ctdb_event_header *h)
-{
- h->length = rand32();
- h->reqid = rand32();
-}
-
-void verify_ctdb_event_header(struct ctdb_event_header *h,
- struct ctdb_event_header *h2)
-{
- assert(h->length == h2->length);
- assert(h->reqid == h2->reqid);
-}
-
void fill_ctdb_event_request(TALLOC_CTX *mem_ctx,
struct ctdb_event_request *r, uint32_t command)
{
void verify_ctdb_event_reply_data(struct ctdb_event_reply_data *r,
struct ctdb_event_reply_data *r2);
-void fill_ctdb_event_header(struct ctdb_event_header *h);
-void verify_ctdb_event_header(struct ctdb_event_header *h,
- struct ctdb_event_header *h2);
-
void fill_ctdb_event_request(TALLOC_CTX *mem_ctx,
struct ctdb_event_request *r, uint32_t command);
void verify_ctdb_event_request(struct ctdb_event_request *r,
talloc_free(mem_ctx); \
}
-static void test_ctdb_event_header(void)
-{
- TALLOC_CTX *mem_ctx;
- size_t buflen, np = 0;
- struct ctdb_event_header h, h2;
- int ret;
-
- printf("ctdb_event_header\n");
- fflush(stdout);
-
- mem_ctx = talloc_new(NULL);
- assert(mem_ctx != NULL);
-
- ctdb_event_header_fill(&h, REQID);
-
- buflen = ctdb_event_header_len(&h);
- assert(buflen < sizeof(BUFFER));
- ctdb_event_header_push(&h, BUFFER, &np);
- assert(np == buflen);
- np = 0;
- ret = ctdb_event_header_pull(BUFFER, buflen, mem_ctx, &h2, &np);
- assert(ret == 0);
- assert(np == buflen);
-
- verify_ctdb_event_header(&h, &h2);
-
- talloc_free(mem_ctx);
-}
-
#define NUM_COMMANDS 5
PROTOCOL_TYPE3_TEST(struct ctdb_event_request_run, ctdb_event_request_run);
TEST_FUNC(ctdb_event_reply_status)();
TEST_FUNC(ctdb_event_reply_script_list)();
- test_ctdb_event_header();
-
for (command=1; command<=NUM_COMMANDS; command++) {
TEST_FUNC(ctdb_event_request_data)(command);
}