From: Amitay Isaacs Date: Fri, 1 Apr 2016 05:51:47 +0000 (+1100) Subject: ctdb-client: Add sync version of sending multiple messages X-Git-Tag: tdb-1.3.10~516 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=3da13a886ddbc789a618ba909552241fda5ffce9;p=thirdparty%2Fsamba.git ctdb-client: Add sync version of sending multiple messages Signed-off-by: Amitay Isaacs Reviewed-by: Martin Schwenke --- diff --git a/ctdb/client/client.h b/ctdb/client/client.h index 2aca4b5ca47..c34d86eb82b 100644 --- a/ctdb/client/client.h +++ b/ctdb/client/client.h @@ -92,6 +92,13 @@ int ctdb_client_message(TALLOC_CTX *mem_ctx, struct tevent_context *ev, struct ctdb_client_context *client, uint32_t destnode, struct ctdb_req_message *message); +int ctdb_client_message_multi(TALLOC_CTX *mem_ctx, + struct tevent_context *ev, + struct ctdb_client_context *client, + uint32_t *pnn_list, int count, + struct ctdb_req_message *message, + int **perr_list); + struct tevent_req *ctdb_client_set_message_handler_send( TALLOC_CTX *mem_ctx, struct tevent_context *ev, diff --git a/ctdb/client/client_message.c b/ctdb/client/client_message.c index 03fcfc6690f..d35ee4c8925 100644 --- a/ctdb/client/client_message.c +++ b/ctdb/client/client_message.c @@ -331,6 +331,34 @@ int ctdb_client_message(TALLOC_CTX *mem_ctx, struct tevent_context *ev, return 0; } +int ctdb_client_message_multi(TALLOC_CTX *mem_ctx, + struct tevent_context *ev, + struct ctdb_client_context *client, + uint32_t *pnn_list, int count, + struct ctdb_req_message *message, + int **perr_list) +{ + struct tevent_req *req; + bool status; + int ret; + + req = ctdb_client_message_multi_send(mem_ctx, ev, client, + pnn_list, count, + message); + if (req == NULL) { + return ENOMEM; + } + + tevent_req_poll(req, ev); + + status = ctdb_client_message_multi_recv(req, &ret, mem_ctx, perr_list); + if (! status) { + return ret; + } + + return 0; +} + struct ctdb_client_set_message_handler_state { struct ctdb_client_context *client; uint64_t srvid;