From 7c5c79e90fbf7c26cae7c3b31babd209a94aa3da Mon Sep 17 00:00:00 2001 From: Sumit Bose Date: Mon, 21 Oct 2013 13:37:37 +0200 Subject: Add unconditional online callbacks Currently online callbacks are only executed if the backend was offline before. This patch add a new class of callback which are always called if the backend gets a request to go online. They can be used e.g. to reset timeouts until a more sophisticated method (OpenLMI, sssctl) is available. --- src/providers/dp_backend.h | 9 +++++++++ 1 file changed, 9 insertions(+) (limited to 'src/providers/dp_backend.h') diff --git a/src/providers/dp_backend.h b/src/providers/dp_backend.h index 76590a39e..fc71b60ca 100644 --- a/src/providers/dp_backend.h +++ b/src/providers/dp_backend.h @@ -126,6 +126,11 @@ struct be_ctx { bool run_online_cb; struct be_cb *offline_cb_list; struct be_cb *reconnect_cb_list; + /* In contrast to online_cb_list which are only run if the backend is + * offline the unconditional_online_cb_list should be run whenever the + * backend receives a request to go online. The typical use case is to + * reset timers independenly of the state of the backend. */ + struct be_cb *unconditional_online_cb_list; struct be_offline_status offstat; @@ -200,6 +205,10 @@ int be_add_online_cb(TALLOC_CTX *mem_ctx, void *pvt, struct be_cb **online_cb); void be_run_online_cb(struct be_ctx *be); +int be_add_unconditional_online_cb(TALLOC_CTX *mem_ctx, struct be_ctx *ctx, + be_callback_t cb, void *pvt, + struct be_cb **unconditional_online_cb); +void be_run_unconditional_online_cb(struct be_ctx *be); int be_add_offline_cb(TALLOC_CTX *mem_ctx, struct be_ctx *ctx, -- cgit