return 0;
}
+
+/* time out handler for ctdb_control */
+void ctdb_control_timeout_func(struct event_context *ev, struct timed_event *te,
+ struct timeval t, void *private_data)
+{
+ struct ctdb_client_control_state *state = talloc_get_type(private_data, struct ctdb_client_control_state);
+
+ DEBUG(DEBUG_ERR,(__location__ " control timed out. reqid:%u opcode:%u "
+ "dstnode:%u\n", state->reqid, state->c->opcode,
+ state->c->hdr.destnode));
+
+ state->state = CTDB_CONTROL_TIMEOUT;
+
+ /* if we had a callback registered for this control, pull the response
+ and call the callback.
+ */
+ if (state->async.fn) {
+ event_add_timed(state->ctdb->ev, state, timeval_zero(), ctdb_invoke_control_callback, state);
+ }
+}
+
int update_ip_assignment_tree(struct ctdb_context *ctdb,
struct ctdb_public_ip *ip);
+void ctdb_control_timeout_func(struct event_context *ev,
+ struct timed_event *te,
+ struct timeval t, void *private_data);
+
+void ctdb_invoke_control_callback(struct event_context *ev, struct timed_event *te, struct timeval t, void *private_data);
+
#endif
called when a control completes or timesout to invoke the callback
function the user provided
*/
-static void invoke_control_callback(struct event_context *ev, struct timed_event *te,
+void ctdb_invoke_control_callback(struct event_context *ev, struct timed_event *te,
struct timeval t, void *private_data)
{
struct ctdb_client_control_state *state;
and call the callback.
*/
if (state->async.fn) {
- event_add_timed(ctdb->ev, state, timeval_zero(), invoke_control_callback, state);
+ event_add_timed(ctdb->ev, state, timeval_zero(), ctdb_invoke_control_callback, state);
}
}
}
-/* time out handler for ctdb_control */
-static void control_timeout_func(struct event_context *ev, struct timed_event *te,
- struct timeval t, void *private_data)
-{
- struct ctdb_client_control_state *state = talloc_get_type(private_data, struct ctdb_client_control_state);
-
- DEBUG(DEBUG_ERR,(__location__ " control timed out. reqid:%u opcode:%u "
- "dstnode:%u\n", state->reqid, state->c->opcode,
- state->c->hdr.destnode));
-
- state->state = CTDB_CONTROL_TIMEOUT;
-
- /* if we had a callback registered for this control, pull the response
- and call the callback.
- */
- if (state->async.fn) {
- event_add_timed(state->ctdb->ev, state, timeval_zero(), invoke_control_callback, state);
- }
-}
-
/* async version of send control request */
struct ctdb_client_control_state *ctdb_control_send(struct ctdb_context *ctdb,
uint32_t destnode, uint64_t srvid,
/* timeout */
if (timeout && !timeval_is_zero(timeout)) {
- event_add_timed(ctdb->ev, state, *timeout, control_timeout_func, state);
+ event_add_timed(ctdb->ev, state, *timeout, ctdb_control_timeout_func, state);
}
ret = ctdb_client_queue_pkt(ctdb, &(c->hdr));