summaryrefslogtreecommitdiff
path: root/src/providers/ipa
diff options
context:
space:
mode:
authorJakub Hrozek <jhrozek@redhat.com>2013-05-19 17:36:54 +0200
committerJakub Hrozek <jhrozek@redhat.com>2013-05-27 19:34:51 +0200
commit3bd78eb2faf09635b8d307e4440ccb1420f80716 (patch)
treec6a5c38c6ad0edf82b81949772e7a14723cf89df /src/providers/ipa
parentbfdb2eeed95bde6cd065a9a47a7cb1773990ccfb (diff)
downloadsssd-3bd78eb2faf09635b8d307e4440ccb1420f80716.tar.gz
sssd-3bd78eb2faf09635b8d307e4440ccb1420f80716.tar.bz2
sssd-3bd78eb2faf09635b8d307e4440ccb1420f80716.zip
Fix dyndns timer initialization
The dyndns init function was starting the timer even if the updates were set to False. This patch splits the init of dynamic updates and the timer into two functions so that the back end can start the updates separately from reading the options.
Diffstat (limited to 'src/providers/ipa')
-rw-r--r--src/providers/ipa/ipa_common.c3
-rw-r--r--src/providers/ipa/ipa_dyndns.c7
2 files changed, 8 insertions, 2 deletions
diff --git a/src/providers/ipa/ipa_common.c b/src/providers/ipa/ipa_common.c
index baece274..509b2abd 100644
--- a/src/providers/ipa/ipa_common.c
+++ b/src/providers/ipa/ipa_common.c
@@ -1019,8 +1019,7 @@ errno_t ipa_get_dyndns_options(struct be_ctx *be_ctx,
bool update;
int ttl;
- ret = be_nsupdate_init(ctx, be_ctx, ipa_dyndns_opts, ipa_dyndns_timer,
- ctx, &ctx->dyndns_ctx);
+ ret = be_nsupdate_init(ctx, be_ctx, ipa_dyndns_opts, &ctx->dyndns_ctx);
if (ret != EOK) {
DEBUG(SSSDBG_OP_FAILURE,
("Cannot initialize IPA dyndns opts [%d]: %s\n",
diff --git a/src/providers/ipa/ipa_dyndns.c b/src/providers/ipa/ipa_dyndns.c
index 81dae94a..4e75a197 100644
--- a/src/providers/ipa/ipa_dyndns.c
+++ b/src/providers/ipa/ipa_dyndns.c
@@ -44,6 +44,13 @@ errno_t ipa_dyndns_init(struct be_ctx *be_ctx,
return EINVAL;
}
+ ret = be_nsupdate_init_timer(ctx->dyndns_ctx, be_ctx->ev,
+ ipa_dyndns_timer, ctx);
+ if (ret != EOK) {
+ DEBUG(SSSDBG_CRIT_FAILURE, ("Could not set up periodic update\n"));
+ return ret;
+ }
+
ret = be_add_online_cb(be_ctx, be_ctx,
ipa_dyndns_update,
ctx, NULL);