summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorSumit Bose <sbose@redhat.com>2013-10-21 14:02:57 +0200
committerJakub Hrozek <jhrozek@redhat.com>2013-10-22 19:13:02 +0200
commit8242211a8765d9adaa26800ea8a05488a3c14683 (patch)
tree95ec0606cf2546fed8008ced84b8c3e72029cf4d /src
parent7c5c79e90fbf7c26cae7c3b31babd209a94aa3da (diff)
downloadsssd-8242211a8765d9adaa26800ea8a05488a3c14683.tar.gz
sssd-8242211a8765d9adaa26800ea8a05488a3c14683.tar.xz
sssd-8242211a8765d9adaa26800ea8a05488a3c14683.zip
IPA: add callback to reset subdomain timeouts
Fixes https://fedorahosted.org/sssd/ticket/2030
Diffstat (limited to 'src')
-rw-r--r--src/providers/ipa/ipa_subdomains.c23
1 files changed, 23 insertions, 0 deletions
diff --git a/src/providers/ipa/ipa_subdomains.c b/src/providers/ipa/ipa_subdomains.c
index ea55f70f1..d6cb0c6b6 100644
--- a/src/providers/ipa/ipa_subdomains.c
+++ b/src/providers/ipa/ipa_subdomains.c
@@ -1106,6 +1106,21 @@ static void ipa_subdom_be_req_callback(struct be_req *be_req,
talloc_free(be_req);
}
+static void ipa_subdom_reset_timeouts_cb(void *pvt)
+{
+ struct ipa_subdomains_ctx *ctx;
+
+ ctx = talloc_get_type(pvt, struct ipa_subdomains_ctx);
+ if (ctx == NULL) {
+ DEBUG(SSSDBG_CRIT_FAILURE, ("Bad private pointer\n"));
+ return;
+ }
+
+ DEBUG(SSSDBG_TRACE_ALL, ("Resetting last_refreshed and disabled_until.\n"));
+ ctx->last_refreshed = 0;
+ ctx->disabled_until = 0;
+}
+
static void ipa_subdom_online_cb(void *pvt)
{
struct ipa_subdomains_ctx *ctx;
@@ -1252,6 +1267,14 @@ int ipa_subdom_init(struct be_ctx *be_ctx,
*ops = &ipa_subdomains_ops;
*pvt_data = ctx;
+ ret = be_add_unconditional_online_cb(ctx, be_ctx,
+ ipa_subdom_reset_timeouts_cb, ctx,
+ NULL);
+ if (ret != EOK) {
+ DEBUG(SSSDBG_MINOR_FAILURE,
+ ("Failed to add subdom reset timeouts callback"));
+ }
+
ret = be_add_online_cb(ctx, be_ctx, ipa_subdom_online_cb, ctx, NULL);
if (ret != EOK) {
DEBUG(SSSDBG_MINOR_FAILURE, ("Failed to add subdom online callback"));