diff --git a/src/providers/be_ptask.c b/src/providers/be_ptask.c index 29a00d719c..c7cbc7df24 100644 --- a/src/providers/be_ptask.c +++ b/src/providers/be_ptask.c @@ -357,12 +357,16 @@ errno_t be_ptask_create(TALLOC_CTX *mem_ctx, if (flags & BE_PTASK_OFFLINE_DISABLE) { /* install offline and online callbacks */ - ret = be_add_online_cb(task, be_ctx, be_ptask_online_cb, task, NULL); - if (ret != EOK) { - DEBUG(SSSDBG_OP_FAILURE, - "Unable to install online callback [%d]: %s\n", - ret, sss_strerror(ret)); - goto done; + if (strcmp(name, "Dyndns update") == 0) { + be_add_unconditional_online_cb(task, be_ctx, be_ptask_online_cb, task, NULL); + } else { + ret = be_add_online_cb(task, be_ctx, be_ptask_online_cb, task, NULL); + if (ret != EOK) { + DEBUG(SSSDBG_OP_FAILURE, + "Unable to install online callback [%d]: %s\n", + ret, sss_strerror(ret)); + goto done; + } } ret = be_add_offline_cb(task, be_ctx, be_ptask_offline_cb, task, NULL);