5 #include "lib/tdb/include/tdb.h"
6 #include "include/ctdb.h"
8 void msg_h(struct ctdb_context *ctdb, uint64_t srvid, TDB_DATA data, void *private_data)
10 printf("Message received on port %d : %s\n", (int)srvid, data.dptr);
14 void rm_cb(int32_t status, int32_t recmaster, void *private_data)
16 printf("recmaster:%d\n", recmaster);
19 int main(int argc, char *argv[])
21 struct ctdb_context *ctdb_context;
27 ctdb_context = ctdb_connect("/tmp/ctdb.socket");
30 pfd.fd = ctdb_get_fd(ctdb_context);
32 handle = ctdb_set_message_handler_send(ctdb_context, 55, NULL, msg_h, NULL);
34 printf("Failed to register message port\n");
37 ret = ctdb_set_message_handler_recv(ctdb_context, ctdb_handle);
39 printf("Failed to receive set_message_handler reply\n");
43 msg.dptr="HelloWorld";
44 msg.dsize = strlen(msg.dptr);
46 ret = ctdb_send_message(ctdb_context, 0, 55, msg);
48 printf("Failed to send message. Aborting\n");
52 handle = ctdb_getrecmaster_send(ctdb_context, 0, rm_cb, NULL);
54 printf("Failed to send get_recmaster control\n");
61 pfd.events = ctdb_which_events(ctdb_context);
62 if (poll(&pfd, 1, -1) < 0) {
63 printf("Poll failed");
66 ctdb_service(ctdb_context);