static void ctdb_req_control_parse(uint8_t *buf, size_t buflen, FILE *fp, TALLOC_CTX *mem_ctx) { struct ctdb_req_control c; int ret; ret = ctdb_req_control_pull(buf, buflen, NULL, mem_ctx, &c); if (ret != 0) { fprintf(fp, "Failed to parse CTDB_REQ_CONTROL\n"); return; } ctdb_req_control_print(&c, fp); }
static void test_req_control_test(void) { TALLOC_CTX *mem_ctx; uint8_t *pkt; size_t pkt_len; int ret; struct ctdb_req_header h, h2; struct ctdb_req_control c, c2; uint32_t opcode; printf("ctdb_req_control\n"); fflush(stdout); ctdb_req_header_fill(&h, GENERATION, CTDB_REQ_CONTROL, DESTNODE, SRCNODE, REQID); for (opcode=0; opcode<NUM_CONTROLS; opcode++) { mem_ctx = talloc_new(NULL); assert(mem_ctx != NULL); printf("%u.. ", opcode); fflush(stdout); fill_ctdb_req_control(mem_ctx, &c, opcode); ret = ctdb_req_control_push(&h, &c, mem_ctx, &pkt, &pkt_len); assert(ret == 0); ret = ctdb_req_control_pull(pkt, pkt_len, &h2, mem_ctx, &c2); assert(ret == 0); verify_ctdb_req_header(&h, &h2); verify_ctdb_req_control(&c, &c2); talloc_free(mem_ctx); } printf("\n"); fflush(stdout); }