diff options
author | Simo Sorce <ssorce@redhat.com> | 2009-10-24 13:36:34 -0400 |
---|---|---|
committer | Stephen Gallagher <sgallagh@redhat.com> | 2009-10-27 10:42:12 -0400 |
commit | 3a21103f61bf9b60256cc2d0da54b757b634319f (patch) | |
tree | c958e19a991e8d6b9c6e3dbe0cc4f62e4ad425b2 /server/providers/proxy.c | |
parent | ee633d9fe3b48a88387edab7978bb16422525d21 (diff) | |
download | sssd-3a21103f61bf9b60256cc2d0da54b757b634319f.tar.gz sssd-3a21103f61bf9b60256cc2d0da54b757b634319f.tar.xz sssd-3a21103f61bf9b60256cc2d0da54b757b634319f.zip |
Move responsibility for entry expiration timeout
The providers are now responsible for determining how long a cached
entry is considered valid. The default is the same as before (600s)
Diffstat (limited to 'server/providers/proxy.c')
-rw-r--r-- | server/providers/proxy.c | 30 |
1 files changed, 22 insertions, 8 deletions
diff --git a/server/providers/proxy.c b/server/providers/proxy.c index e3b31c3dd..bce6a75ae 100644 --- a/server/providers/proxy.c +++ b/server/providers/proxy.c @@ -58,6 +58,7 @@ struct proxy_nss_ops { struct proxy_ctx { struct be_ctx *be; + int entry_cache_timeout; struct proxy_nss_ops ops; }; @@ -415,7 +416,8 @@ static void get_pw_name_process(struct tevent_req *subreq) state->pwd->pw_gid, state->pwd->pw_gecos, state->pwd->pw_dir, - state->pwd->pw_shell, NULL); + state->pwd->pw_shell, + NULL, ctx->entry_cache_timeout); if (!subreq) { tevent_req_error(req, ENOMEM); return; @@ -607,7 +609,8 @@ static void get_pw_uid_process(struct tevent_req *subreq) state->pwd->pw_gid, state->pwd->pw_gecos, state->pwd->pw_dir, - state->pwd->pw_shell, NULL); + state->pwd->pw_shell, + NULL, ctx->entry_cache_timeout); if (!subreq) { tevent_req_error(req, ENOMEM); return; @@ -829,7 +832,8 @@ again: state->pwd->pw_gid, state->pwd->pw_gecos, state->pwd->pw_dir, - state->pwd->pw_shell, NULL); + state->pwd->pw_shell, + NULL, ctx->entry_cache_timeout); if (!subreq) { tevent_req_error(req, ENOMEM); return; @@ -1000,7 +1004,8 @@ again: state->domain, state->grp->gr_name, state->grp->gr_gid, - members, NULL, NULL); + members, NULL, NULL, + ctx->entry_cache_timeout); if (!subreq) { tevent_req_error(req, ENOMEM); return; @@ -1214,7 +1219,8 @@ again: state->domain, state->grp->gr_name, state->grp->gr_gid, - members, NULL, NULL); + members, NULL, NULL, + ctx->entry_cache_timeout); if (!subreq) { tevent_req_error(req, ENOMEM); return; @@ -1442,7 +1448,8 @@ again: state->domain, state->grp->gr_name, state->grp->gr_gid, - members, NULL, NULL); + members, NULL, NULL, + ctx->entry_cache_timeout); if (!subreq) { tevent_req_error(req, ENOMEM); return; @@ -1582,7 +1589,8 @@ static void get_initgr_process(struct tevent_req *subreq) state->pwd->pw_gid, state->pwd->pw_gecos, state->pwd->pw_dir, - state->pwd->pw_shell, NULL); + state->pwd->pw_shell, + NULL, ctx->entry_cache_timeout); if (!subreq) { tevent_req_error(req, ENOMEM); return; @@ -1893,7 +1901,8 @@ again: state->grp->gr_name, state->grp->gr_gid, (const char **)state->grp->gr_mem, - NULL, NULL); + NULL, NULL, + ctx->entry_cache_timeout); if (!subreq) { ret = ENOMEM; goto fail; @@ -2233,6 +2242,11 @@ int sssm_proxy_init(struct be_ctx *bectx, } ctx->be = bectx; + ret = confdb_get_int(bectx->cdb, ctx, bectx->conf_path, + CONFDB_DOMAIN_ENTRY_CACHE_TIMEOUT, 600, + &ctx->entry_cache_timeout); + if (ret != EOK) goto done; + ret = confdb_get_string(bectx->cdb, ctx, bectx->conf_path, CONFDB_PROXY_LIBNAME, NULL, &libname); if (ret != EOK) goto done; |