summaryrefslogtreecommitdiffstats
path: root/src/responder/nss/nsssrv_cmd.c
diff options
context:
space:
mode:
authorSumit Bose <sbose@redhat.com>2014-10-17 14:01:02 +0200
committerJakub Hrozek <jhrozek@redhat.com>2014-10-20 16:15:35 +0200
commit396fb27b17d66261e2d15146a7c925be8d637226 (patch)
tree1ce379c596779c5335ce6821735a6da99247d778 /src/responder/nss/nsssrv_cmd.c
parent4777af0b8f9a3f418a54f0d4bf7eb72b896dabb5 (diff)
downloadsssd-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/responder/nss/nsssrv_cmd.c')
-rw-r--r--src/responder/nss/nsssrv_cmd.c14
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",