diff options
author | Sumit Bose <sbose@redhat.com> | 2014-10-17 14:01:02 +0200 |
---|---|---|
committer | Jakub Hrozek <jhrozek@redhat.com> | 2014-10-20 16:15:35 +0200 |
commit | 396fb27b17d66261e2d15146a7c925be8d637226 (patch) | |
tree | 1ce379c596779c5335ce6821735a6da99247d778 /src | |
parent | 4777af0b8f9a3f418a54f0d4bf7eb72b896dabb5 (diff) | |
download | sssd-396fb27b17d66261e2d15146a7c925be8d637226.tar.gz sssd-396fb27b17d66261e2d15146a7c925be8d637226.tar.xz sssd-396fb27b17d66261e2d15146a7c925be8d637226.zip |
nss: make enumeration requests aware of views
Reviewed-by: Pavel Březina <pbrezina@redhat.com>
Diffstat (limited to 'src')
-rw-r--r-- | src/responder/nss/nsssrv_cmd.c | 14 |
1 files changed, 8 insertions, 6 deletions
diff --git a/src/responder/nss/nsssrv_cmd.c b/src/responder/nss/nsssrv_cmd.c index 3def57fd0..616f83dda 100644 --- a/src/responder/nss/nsssrv_cmd.c +++ b/src/responder/nss/nsssrv_cmd.c @@ -123,7 +123,7 @@ void nss_update_pw_memcache(struct nss_ctx *nctx) now = time(NULL); for (dom = nctx->rctx->domains; dom; dom = get_next_domain(dom, false)) { - ret = sysdb_enumpwent(nctx, dom, &res); + ret = sysdb_enumpwent_with_views(nctx, dom, &res); if (ret != EOK) { DEBUG(SSSDBG_CRIT_FAILURE, "Failed to enumerate users for domain [%s]\n", dom->name); @@ -140,7 +140,8 @@ void nss_update_pw_memcache(struct nss_ctx *nctx) /* names require more manipulation (build up fqname conditionally), * but uidNumber is unique and always resolvable too, so we use * that to update the cache, as it points to the same entry */ - id = ldb_msg_find_attr_as_string(res->msgs[i], SYSDB_UIDNUM, NULL); + id = sss_view_ldb_msg_find_attr_as_string(dom, res->msgs[i], + SYSDB_UIDNUM, NULL); if (!id) { DEBUG(SSSDBG_CRIT_FAILURE, "Failed to find uidNumber in %s.\n", @@ -2062,7 +2063,7 @@ static errno_t nss_cmd_setpwent_step(struct setent_step_ctx *step_ctx) } } - ret = sysdb_enumpwent(dctx, dom, &res); + ret = sysdb_enumpwent_with_views(dctx, dom, &res); if (ret != EOK) { DEBUG(SSSDBG_CRIT_FAILURE, "Enum from cache failed, skipping domain [%s]\n", @@ -2395,7 +2396,7 @@ void nss_update_gr_memcache(struct nss_ctx *nctx) now = time(NULL); for (dom = nctx->rctx->domains; dom; dom = get_next_domain(dom, false)) { - ret = sysdb_enumgrent(nctx, dom, &res); + ret = sysdb_enumgrent_with_views(nctx, dom, &res); if (ret != EOK) { DEBUG(SSSDBG_CRIT_FAILURE, "Failed to enumerate users for domain [%s]\n", dom->name); @@ -2412,7 +2413,8 @@ void nss_update_gr_memcache(struct nss_ctx *nctx) /* names require more manipulation (build up fqname conditionally), * but uidNumber is unique and always resolvable too, so we use * that to update the cache, as it points to the same entry */ - id = ldb_msg_find_attr_as_string(res->msgs[i], SYSDB_GIDNUM, NULL); + id = sss_view_ldb_msg_find_attr_as_string(dom, res->msgs[i], + SYSDB_GIDNUM, NULL); if (!id) { DEBUG(SSSDBG_CRIT_FAILURE, "Failed to find gidNumber in %s.\n", @@ -3406,7 +3408,7 @@ static errno_t nss_cmd_setgrent_step(struct setent_step_ctx *step_ctx) } } - ret = sysdb_enumgrent(dctx, dom, &res); + ret = sysdb_enumgrent_with_views(dctx, dom, &res); if (ret != EOK) { DEBUG(SSSDBG_CRIT_FAILURE, "Enum from cache failed, skipping domain [%s]\n", |