From ef9bd68061023619db3dd3e66720ea8ca80a6e9e Mon Sep 17 00:00:00 2001 From: Simo Sorce Date: Sun, 6 Jan 2013 17:32:08 -0500 Subject: Add domain option to sysdb_get/netgr/attrs() fns --- src/db/sysdb.h | 2 ++ src/db/sysdb_search.c | 8 +++++--- src/responder/nss/nsssrv_netgroup.c | 2 +- src/tests/sysdb-tests.c | 6 +++--- 4 files changed, 11 insertions(+), 7 deletions(-) diff --git a/src/db/sysdb.h b/src/db/sysdb.h index fa6c27353..151cd7f98 100644 --- a/src/db/sysdb.h +++ b/src/db/sysdb.h @@ -501,6 +501,7 @@ struct sysdb_netgroup_ctx { errno_t sysdb_getnetgr(TALLOC_CTX *mem_ctx, struct sysdb_ctx *sysdb, + struct sss_domain_info *domain, const char *netgroup, struct ldb_result **res); @@ -517,6 +518,7 @@ int sysdb_get_user_attr(TALLOC_CTX *mem_ctx, int sysdb_get_netgroup_attr(TALLOC_CTX *mem_ctx, struct sysdb_ctx *sysdb, + struct sss_domain_info *domain, const char *netgrname, const char **attributes, struct ldb_result **res); diff --git a/src/db/sysdb_search.c b/src/db/sysdb_search.c index 4a2795268..34379d489 100644 --- a/src/db/sysdb_search.c +++ b/src/db/sysdb_search.c @@ -782,6 +782,7 @@ done: errno_t sysdb_getnetgr(TALLOC_CTX *mem_ctx, struct sysdb_ctx *sysdb, + struct sss_domain_info *domain, const char *netgroup, struct ldb_result **res) { @@ -801,7 +802,7 @@ errno_t sysdb_getnetgr(TALLOC_CTX *mem_ctx, base_dn = ldb_dn_new_fmt(tmp_ctx, sysdb->ldb, SYSDB_TMPL_NETGROUP_BASE, - sysdb->domain->name); + domain->name); if (!base_dn) { ret = ENOMEM; goto done; @@ -813,7 +814,7 @@ errno_t sysdb_getnetgr(TALLOC_CTX *mem_ctx, } netgroup_dn = talloc_asprintf(tmp_ctx, SYSDB_TMPL_NETGROUP, - sanitized_netgroup, sysdb->domain->name); + sanitized_netgroup, domain->name); if (!netgroup_dn) { ret = ENOMEM; goto done; @@ -839,6 +840,7 @@ done: int sysdb_get_netgroup_attr(TALLOC_CTX *mem_ctx, struct sysdb_ctx *sysdb, + struct sss_domain_info *domain, const char *netgrname, const char **attributes, struct ldb_result **res) @@ -855,7 +857,7 @@ int sysdb_get_netgroup_attr(TALLOC_CTX *mem_ctx, } base_dn = ldb_dn_new_fmt(tmp_ctx, sysdb->ldb, - SYSDB_TMPL_NETGROUP_BASE, sysdb->domain->name); + SYSDB_TMPL_NETGROUP_BASE, domain->name); if (!base_dn) { ret = ENOMEM; goto done; diff --git a/src/responder/nss/nsssrv_netgroup.c b/src/responder/nss/nsssrv_netgroup.c index 4b10b1819..e6debffa5 100644 --- a/src/responder/nss/nsssrv_netgroup.c +++ b/src/responder/nss/nsssrv_netgroup.c @@ -457,7 +457,7 @@ static errno_t lookup_netgr_step(struct setent_step_ctx *step_ctx) } /* Look up the netgroup in the cache */ - ret = sysdb_getnetgr(step_ctx->dctx, sysdb, name, + ret = sysdb_getnetgr(step_ctx->dctx, sysdb, dom, name, &step_ctx->dctx->res); if (ret == ENOENT) { /* This netgroup was not found in this domain */ diff --git a/src/tests/sysdb-tests.c b/src/tests/sysdb-tests.c index c60d47664..7cf5a3e0a 100644 --- a/src/tests/sysdb-tests.c +++ b/src/tests/sysdb-tests.c @@ -3648,7 +3648,7 @@ START_TEST (test_sysdb_get_netgroup_attr) netgrname = talloc_asprintf(test_ctx, "testnetgr%d", _i); ret = sysdb_get_netgroup_attr(test_ctx, test_ctx->sysdb, - netgrname, attrs, &res); + test_ctx->domain, netgrname, attrs, &res); fail_if(ret != EOK, "Could not get netgroup attributes"); fail_if(res->count != 1, @@ -3778,14 +3778,14 @@ START_TEST(test_odd_characters) /* Retrieve */ ret = sysdb_getnetgr(test_ctx, test_ctx->sysdb, - odd_netgroupname, &res); + test_ctx->domain, odd_netgroupname, &res); fail_unless(ret == EOK, "sysdb_getnetgr error [%d][%s]", ret, strerror(ret)); fail_unless(res->count == 1, "Received [%d] responses", res->count); talloc_zfree(res); - ret = sysdb_get_netgroup_attr(test_ctx, test_ctx->sysdb, + ret = sysdb_get_netgroup_attr(test_ctx, test_ctx->sysdb, test_ctx->domain, odd_netgroupname, netgr_attrs, &res); fail_unless(ret == EOK, "sysdb_get_netgroup_attr error [%d][%s]", ret, strerror(ret)); -- cgit