From 4f87f99f95891ebc0814e4566fa2defb4359b008 Mon Sep 17 00:00:00 2001 From: Petr Cech Date: May 11 2016 10:52:13 +0000 Subject: RESPONDER: Removing neg_timeout from nss responder Timeout of negative cahce is handled by internal negative cache context. This patch removes neg_timeout from struct nss_ctx. Resolves: https://fedorahosted.org/sssd/ticket/2317 Reviewed-by: Pavel Březina --- diff --git a/src/responder/common/responder_cache_req.c b/src/responder/common/responder_cache_req.c index 1ad1412..a3253a5 100644 --- a/src/responder/common/responder_cache_req.c +++ b/src/responder/common/responder_cache_req.c @@ -896,7 +896,6 @@ struct cache_req_cache_state { struct tevent_context *ev; struct resp_ctx *rctx; struct sss_nc_ctx *ncache; - int neg_timeout; int cache_refresh_percent; struct cache_req *cr; diff --git a/src/responder/nss/nsssrv.c b/src/responder/nss/nsssrv.c index 5dfee5a..363ee7b 100644 --- a/src/responder/nss/nsssrv.c +++ b/src/responder/nss/nsssrv.c @@ -230,11 +230,6 @@ static int nss_get_config(struct nss_ctx *nctx, &nctx->enum_cache_timeout); if (ret != EOK) goto done; - ret = confdb_get_int(cdb, CONFDB_NSS_CONF_ENTRY, - CONFDB_NSS_ENTRY_NEG_TIMEOUT, 15, - &nctx->neg_timeout); - if (ret != EOK) goto done; - ret = confdb_get_bool(cdb, CONFDB_NSS_CONF_ENTRY, CONFDB_NSS_FILTER_USERS_IN_GROUPS, true, &nctx->filter_users_in_groups); diff --git a/src/responder/nss/nsssrv.h b/src/responder/nss/nsssrv.h index e293e3b..28e62b7 100644 --- a/src/responder/nss/nsssrv.h +++ b/src/responder/nss/nsssrv.h @@ -44,7 +44,6 @@ struct sss_mc_ctx; struct nss_ctx { struct resp_ctx *rctx; - int neg_timeout; struct sss_nc_ctx *ncache; int cache_refresh_percent; diff --git a/src/responder/nss/nsssrv_netgroup.c b/src/responder/nss/nsssrv_netgroup.c index 383b44a..cde3a20 100644 --- a/src/responder/nss/nsssrv_netgroup.c +++ b/src/responder/nss/nsssrv_netgroup.c @@ -433,6 +433,7 @@ static void set_netgr_lifetime(uint32_t lifetime, static errno_t create_negcache_netgr(struct setent_step_ctx *step_ctx) { errno_t ret; + uint32_t lifetime; struct getent_ctx *netgr; /* Is there already netgroup with such name? */ @@ -466,7 +467,8 @@ static errno_t create_negcache_netgr(struct setent_step_ctx *step_ctx) netgr->ready = true; netgr->found = false; - set_netgr_lifetime(step_ctx->nctx->neg_timeout, step_ctx, netgr); + lifetime = sss_ncache_get_timeout(step_ctx->nctx->ncache); + set_netgr_lifetime(lifetime, step_ctx, netgr); ret = EOK; @@ -585,7 +587,8 @@ static errno_t lookup_netgr_step(struct setent_step_ctx *step_ctx) "Failed to convert results into entries\n"); netgr->ready = true; netgr->found = false; - set_netgr_lifetime(step_ctx->nctx->neg_timeout, step_ctx, netgr); + lifetime = sss_ncache_get_timeout(step_ctx->nctx->ncache); + set_netgr_lifetime(lifetime, step_ctx, netgr); ret = EIO; goto done; } diff --git a/src/tests/cmocka/test_negcache.c b/src/tests/cmocka/test_negcache.c index e764c51..99d61fb 100644 --- a/src/tests/cmocka/test_negcache.c +++ b/src/tests/cmocka/test_negcache.c @@ -84,7 +84,6 @@ mock_nctx(TALLOC_CTX *mem_ctx) talloc_free(nctx); return NULL; } - nctx->neg_timeout = 10; nctx->pwfield = discard_const("*"); err = sss_idmap_init(sss_idmap_talloc, nctx, sss_idmap_talloc_free, diff --git a/src/tests/cmocka/test_nss_srv.c b/src/tests/cmocka/test_nss_srv.c index 30df38b..9471e51 100644 --- a/src/tests/cmocka/test_nss_srv.c +++ b/src/tests/cmocka/test_nss_srv.c @@ -75,7 +75,6 @@ mock_nctx(TALLOC_CTX *mem_ctx) talloc_free(nctx); return NULL; } - nctx->neg_timeout = 10; nctx->pwfield = discard_const("*"); err = sss_idmap_init(sss_idmap_talloc, nctx, sss_idmap_talloc_free, diff --git a/src/tests/cmocka/test_pam_srv.c b/src/tests/cmocka/test_pam_srv.c index 75c3ddc..d88d9a0 100644 --- a/src/tests/cmocka/test_pam_srv.c +++ b/src/tests/cmocka/test_pam_srv.c @@ -180,8 +180,6 @@ struct pam_ctx *mock_pctx(TALLOC_CTX *mem_ctx) ret = sss_ncache_init(pctx, 10, &pctx->ncache); assert_int_equal(ret, EOK); - pctx->neg_timeout = 10; - ret = sss_hash_create(pctx, 10, &pctx->id_table); assert_int_equal(ret, EOK);