diff options
-rw-r--r-- | src/db/sysdb.h | 6 | ||||
-rw-r--r-- | src/db/sysdb_ops.c | 9 | ||||
-rw-r--r-- | src/db/sysdb_subdomains.c | 12 | ||||
-rw-r--r-- | src/providers/ldap/sdap_async_initgroups.c | 18 | ||||
-rw-r--r-- | src/providers/ldap/sdap_async_initgroups_ad.c | 4 | ||||
-rw-r--r-- | src/providers/ldap/sdap_async_private.h | 1 | ||||
-rw-r--r-- | src/tests/sysdb-tests.c | 7 | ||||
-rw-r--r-- | src/tools/sss_groupshow.c | 6 |
8 files changed, 29 insertions, 34 deletions
diff --git a/src/db/sysdb.h b/src/db/sysdb.h index 333c94ae..9f9dd973 100644 --- a/src/db/sysdb.h +++ b/src/db/sysdb.h @@ -400,11 +400,6 @@ errno_t sysdb_delete_domuser(struct sss_domain_info *domain, const char *name, uid_t uid); -errno_t sysdb_search_domgroup_by_name(TALLOC_CTX *mem_ctx, - struct sss_domain_info *domain, - const char *name, - const char **attrs, - struct ldb_message **msg); errno_t sysdb_search_domgroup_by_gid(TALLOC_CTX *mem_ctx, struct sss_domain_info *domain, gid_t gid, @@ -557,6 +552,7 @@ int sysdb_search_user_by_uid(TALLOC_CTX *mem_ctx, /* Search Group (by gid or name) */ int sysdb_search_group_by_name(TALLOC_CTX *mem_ctx, struct sysdb_ctx *sysdb, + struct sss_domain_info *domain, const char *name, const char **attrs, struct ldb_message **msg); diff --git a/src/db/sysdb_ops.c b/src/db/sysdb_ops.c index 2e361ec8..3f216d35 100644 --- a/src/db/sysdb_ops.c +++ b/src/db/sysdb_ops.c @@ -337,6 +337,7 @@ done: int sysdb_search_group_by_name(TALLOC_CTX *mem_ctx, struct sysdb_ctx *sysdb, + struct sss_domain_info *domain, const char *name, const char **attrs, struct ldb_message **msg) @@ -353,7 +354,7 @@ int sysdb_search_group_by_name(TALLOC_CTX *mem_ctx, return ENOMEM; } - basedn = sysdb_group_dn(sysdb, tmp_ctx, sysdb->domain, name); + basedn = sysdb_group_dn(sysdb, tmp_ctx, domain, name); if (!basedn) { ret = ENOMEM; goto done; @@ -1120,7 +1121,7 @@ int sysdb_add_user(struct sysdb_ctx *sysdb, * Don't worry about users, if we try to add a user with the same * name the operation will fail */ - ret = sysdb_search_group_by_name(tmp_ctx, sysdb, + ret = sysdb_search_group_by_name(tmp_ctx, sysdb, domain, name, NULL, &msg); if (ret != ENOENT) { if (ret == EOK) ret = EEXIST; @@ -1785,7 +1786,7 @@ int sysdb_store_group(struct sysdb_ctx *sysdb, return ENOMEM; } - ret = sysdb_search_group_by_name(tmp_ctx, sysdb, + ret = sysdb_search_group_by_name(tmp_ctx, sysdb, sysdb->domain, name, src_attrs, &msg); if (ret && ret != ENOENT) { goto done; @@ -2545,7 +2546,7 @@ int sysdb_delete_group(struct sysdb_ctx *sysdb, } if (name) { - ret = sysdb_search_group_by_name(tmp_ctx, sysdb, + ret = sysdb_search_group_by_name(tmp_ctx, sysdb, sysdb->domain, name, NULL, &msg); } else { ret = sysdb_search_group_by_gid(tmp_ctx, sysdb, diff --git a/src/db/sysdb_subdomains.c b/src/db/sysdb_subdomains.c index 5943c1d1..f98dbd29 100644 --- a/src/db/sysdb_subdomains.c +++ b/src/db/sysdb_subdomains.c @@ -603,18 +603,6 @@ errno_t sysdb_delete_domuser(struct sss_domain_info *domain, return sysdb_delete_user(domain->sysdb, name, uid); } -errno_t sysdb_search_domgroup_by_name(TALLOC_CTX *mem_ctx, - struct sss_domain_info *domain, - const char *name, - const char **attrs, - struct ldb_message **msg) -{ - CHECK_DOMAIN_INFO(domain); - - return sysdb_search_group_by_name(mem_ctx, domain->sysdb, - name, attrs, msg); -} - errno_t sysdb_search_domgroup_by_gid(TALLOC_CTX *mem_ctx, struct sss_domain_info *domain, gid_t gid, diff --git a/src/providers/ldap/sdap_async_initgroups.c b/src/providers/ldap/sdap_async_initgroups.c index ad794b8d..7ccbe47b 100644 --- a/src/providers/ldap/sdap_async_initgroups.c +++ b/src/providers/ldap/sdap_async_initgroups.c @@ -29,6 +29,7 @@ /* ==Save-fake-group-list=====================================*/ static errno_t sdap_add_incomplete_groups(struct sysdb_ctx *sysdb, + struct sss_domain_info *domain, struct sdap_options *opts, char **groupnames, struct sysdb_attrs **ldap_groups, @@ -63,7 +64,8 @@ static errno_t sdap_add_incomplete_groups(struct sysdb_ctx *sysdb, mi = 0; for (i=0; groupnames[i]; i++) { - ret = sysdb_search_group_by_name(tmp_ctx, sysdb, groupnames[i], NULL, &msg); + ret = sysdb_search_group_by_name(tmp_ctx, sysdb, domain, + groupnames[i], NULL, &msg); if (ret == EOK) { continue; } else if (ret == ENOENT) { @@ -203,6 +205,7 @@ done: } int sdap_initgr_common_store(struct sysdb_ctx *sysdb, + struct sss_domain_info *domain, struct sdap_options *opts, const char *name, enum sysdb_member_type type, @@ -257,7 +260,7 @@ int sdap_initgr_common_store(struct sysdb_ctx *sysdb, * member of but that are not cached in sysdb */ if (add_groups && add_groups[0]) { - ret = sdap_add_incomplete_groups(sysdb, opts, + ret = sdap_add_incomplete_groups(sysdb, domain, opts, add_groups, ldap_groups, ldap_groups_count); if (ret != EOK) { @@ -514,7 +517,9 @@ static void sdap_initgr_rfc2307_process(struct tevent_req *subreq) /* There are no nested groups here so we can just update the * memberships */ - ret = sdap_initgr_common_store(state->sysdb, state->opts, + ret = sdap_initgr_common_store(state->sysdb, + state->domain, + state->opts, state->name, SYSDB_MEMBER_USER, sysdb_grouplist, @@ -538,6 +543,7 @@ static int sdap_initgr_rfc2307_recv(struct tevent_req *req) /* ==Common code for pure RFC2307bis and IPA/AD========================= */ static errno_t sdap_nested_groups_store(struct sysdb_ctx *sysdb, + struct sss_domain_info *domain, struct sdap_options *opts, struct sysdb_attrs **groups, unsigned long count) @@ -569,7 +575,7 @@ sdap_nested_groups_store(struct sysdb_ctx *sysdb, } in_transaction = true; - ret = sdap_add_incomplete_groups(sysdb, opts, groupnamelist, + ret = sdap_add_incomplete_groups(sysdb, domain, opts, groupnamelist, groups, count); if (ret != EOK) { DEBUG(6, ("Could not add incomplete groups [%d]: %s\n", @@ -1014,7 +1020,7 @@ fail: static errno_t sdap_initgr_store_groups(struct sdap_initgr_nested_state *state) { - return sdap_nested_groups_store(state->sysdb, + return sdap_nested_groups_store(state->sysdb, state->dom, state->opts, state->groups, state->groups_cur); } @@ -1766,7 +1772,7 @@ save_rfc2307bis_groups(struct sdap_initgr_rfc2307bis_state *state) } talloc_zfree(values); - ret = sdap_nested_groups_store(state->sysdb, state->opts, + ret = sdap_nested_groups_store(state->sysdb, state->dom, state->opts, groups, count); if (ret != EOK) { DEBUG(3, ("Could not save groups [%d]: %s\n", diff --git a/src/providers/ldap/sdap_async_initgroups_ad.c b/src/providers/ldap/sdap_async_initgroups_ad.c index 9b1acd6a..ff0e7133 100644 --- a/src/providers/ldap/sdap_async_initgroups_ad.c +++ b/src/providers/ldap/sdap_async_initgroups_ad.c @@ -269,7 +269,9 @@ sdap_get_ad_match_rule_initgroups_step(struct tevent_req *subreq) * nested group searches, so we can just update the * memberships now. */ - ret = sdap_initgr_common_store(state->sysdb, state->opts, + ret = sdap_initgr_common_store(state->sysdb, + state->domain, + state->opts, state->name, SYSDB_MEMBER_USER, sysdb_grouplist, diff --git a/src/providers/ldap/sdap_async_private.h b/src/providers/ldap/sdap_async_private.h index 871cce4e..156255b9 100644 --- a/src/providers/ldap/sdap_async_private.h +++ b/src/providers/ldap/sdap_async_private.h @@ -107,6 +107,7 @@ int sdap_save_users(TALLOC_CTX *memctx, char **_usn_value); int sdap_initgr_common_store(struct sysdb_ctx *sysdb, + struct sss_domain_info *domain, struct sdap_options *opts, const char *name, enum sysdb_member_type type, diff --git a/src/tests/sysdb-tests.c b/src/tests/sysdb-tests.c index 5337b4a6..d97f4799 100644 --- a/src/tests/sysdb-tests.c +++ b/src/tests/sysdb-tests.c @@ -3693,7 +3693,8 @@ START_TEST(test_odd_characters) /* Retrieve */ ret = sysdb_search_group_by_name(test_ctx, test_ctx->sysdb, - odd_groupname, NULL, &msg); + test_ctx->domain, + odd_groupname, NULL, &msg); fail_unless(ret == EOK, "sysdb_search_group_by_name error [%d][%s]", ret, strerror(ret)); talloc_zfree(msg); @@ -4444,8 +4445,8 @@ START_TEST(test_sysdb_subdomain_group_ops) "name=subdomgroup,cn=groups,cn=test.sub,cn=sysdb"); fail_unless(check_dn != NULL); - ret = sysdb_search_domgroup_by_name(test_ctx, subdomain, "subdomgroup", NULL, - &msg); + ret = sysdb_search_group_by_name(test_ctx, subdomain->sysdb, subdomain, + "subdomgroup", NULL, &msg); fail_unless(ret == EOK, "sysdb_search_domgroup_by_name failed with [%d][%s].", ret, strerror(ret)); fail_unless(ldb_dn_compare(msg->dn, check_dn) == 0, diff --git a/src/tools/sss_groupshow.c b/src/tools/sss_groupshow.c index f79df935..93e0acba 100644 --- a/src/tools/sss_groupshow.c +++ b/src/tools/sss_groupshow.c @@ -333,7 +333,7 @@ int group_show(TALLOC_CTX *mem_ctx, int i; /* First, search for the root group */ - ret = sysdb_search_group_by_name(mem_ctx, sysdb, name, attrs, &msg); + ret = sysdb_search_group_by_name(mem_ctx, sysdb, domain, name, attrs, &msg); if (ret) { DEBUG(2, ("Search failed: %s (%d)\n", strerror(ret), ret)); goto done; @@ -505,8 +505,8 @@ int group_show_recurse(TALLOC_CTX *mem_ctx, continue; } - ret = sysdb_search_group_by_name(mem_ctx, sysdb, group_members[i], - attrs, &msg); + ret = sysdb_search_group_by_name(mem_ctx, sysdb, domain, + group_members[i], attrs, &msg); if (ret) { DEBUG(2, ("Search failed: %s (%d)\n", strerror(ret), ret)); return EIO; |