From a58ccee5afc802c7560624929614616aeefa9bd0 Mon Sep 17 00:00:00 2001 From: Simo Sorce Date: Mon, 7 Jan 2013 23:39:50 -0500 Subject: Add domain argument to sysdb_delete_group() Also remove sysdb_delete_domgroup() --- src/db/sysdb.h | 4 +--- src/db/sysdb_ops.c | 7 ++++--- src/db/sysdb_subdomains.c | 15 --------------- src/providers/ldap/ldap_id.c | 6 ++++-- src/providers/ldap/ldap_id_cleanup.c | 2 +- src/providers/proxy/proxy_id.c | 4 ++-- src/tests/sysdb-tests.c | 13 ++++++++----- 7 files changed, 20 insertions(+), 31 deletions(-) (limited to 'src') diff --git a/src/db/sysdb.h b/src/db/sysdb.h index 8ccf637a6..ca82c78ee 100644 --- a/src/db/sysdb.h +++ b/src/db/sysdb.h @@ -384,9 +384,6 @@ errno_t sysdb_master_domain_get_info(TALLOC_CTX *mem_ctx, errno_t sysdb_master_domain_add_info(struct sysdb_ctx *sysdb, struct sysdb_subdom *domain_info); -errno_t sysdb_delete_domgroup(struct sss_domain_info *domain, - const char *name, gid_t gid); - errno_t sysdb_get_ranges(TALLOC_CTX *mem_ctx, struct sysdb_ctx *sysdb, size_t *range_count, struct range_info ***range_list); @@ -769,6 +766,7 @@ int sysdb_search_groups(TALLOC_CTX *mem_ctx, struct ldb_message ***msgs); int sysdb_delete_group(struct sysdb_ctx *sysdb, + struct sss_domain_info *domain, const char *name, gid_t gid); int sysdb_search_netgroups(TALLOC_CTX *mem_ctx, diff --git a/src/db/sysdb_ops.c b/src/db/sysdb_ops.c index 37e6b682b..a32f41833 100644 --- a/src/db/sysdb_ops.c +++ b/src/db/sysdb_ops.c @@ -1831,7 +1831,7 @@ int sysdb_store_group(struct sysdb_ctx *sysdb, /* This may be a group rename. If there is a group with the * same GID, remove it and try to add the basic group again */ - ret = sysdb_delete_group(sysdb, NULL, gid); + ret = sysdb_delete_group(sysdb, domain, NULL, gid); if (ret == ENOENT) { /* Not found by GID, return the original EEXIST, * this may be a conflict in MPG domain or something @@ -2562,6 +2562,7 @@ fail: /* =Delete-Group-by-Name-OR-gid=========================================== */ int sysdb_delete_group(struct sysdb_ctx *sysdb, + struct sss_domain_info *domain, const char *name, gid_t gid) { TALLOC_CTX *tmp_ctx; @@ -2574,10 +2575,10 @@ int sysdb_delete_group(struct sysdb_ctx *sysdb, } if (name) { - ret = sysdb_search_group_by_name(tmp_ctx, sysdb, sysdb->domain, + ret = sysdb_search_group_by_name(tmp_ctx, sysdb, domain, name, NULL, &msg); } else { - ret = sysdb_search_group_by_gid(tmp_ctx, sysdb, sysdb->domain, + ret = sysdb_search_group_by_gid(tmp_ctx, sysdb, domain, gid, NULL, &msg); } if (ret) { diff --git a/src/db/sysdb_subdomains.c b/src/db/sysdb_subdomains.c index 10de85024..1f85b5726 100644 --- a/src/db/sysdb_subdomains.c +++ b/src/db/sysdb_subdomains.c @@ -569,18 +569,3 @@ errno_t sysdb_get_subdomain_context(TALLOC_CTX *mem_ctx, return EOK; } - -#define CHECK_DOMAIN_INFO(dom_info) do { \ - if (dom_info == NULL || dom_info->sysdb == NULL) { \ - DEBUG(SSSDBG_OP_FAILURE, ("Invalid domain info.\n")); \ - return EINVAL; \ - } \ -} while(0) - -errno_t sysdb_delete_domgroup(struct sss_domain_info *domain, - const char *name, gid_t gid) -{ - CHECK_DOMAIN_INFO(domain); - - return sysdb_delete_group(domain->sysdb, name, gid); -} diff --git a/src/providers/ldap/ldap_id.c b/src/providers/ldap/ldap_id.c index 95455d01b..e66114b35 100644 --- a/src/providers/ldap/ldap_id.c +++ b/src/providers/ldap/ldap_id.c @@ -551,7 +551,8 @@ static void groups_get_done(struct tevent_req *subreq) tevent_req_error(req, ret); return; case BE_FILTER_NAME: - ret = sysdb_delete_group(state->sysdb, state->name, 0); + ret = sysdb_delete_group(state->sysdb, + state->domain, state->name, 0); if (ret != EOK && ret != ENOENT) { tevent_req_error(req, ret); return; @@ -565,7 +566,8 @@ static void groups_get_done(struct tevent_req *subreq) return; } - ret = sysdb_delete_group(state->sysdb, NULL, gid); + ret = sysdb_delete_group(state->sysdb, + state->domain, NULL, gid); if (ret != EOK && ret != ENOENT) { tevent_req_error(req, ret); return; diff --git a/src/providers/ldap/ldap_id_cleanup.c b/src/providers/ldap/ldap_id_cleanup.c index 103cca973..b220069aa 100644 --- a/src/providers/ldap/ldap_id_cleanup.c +++ b/src/providers/ldap/ldap_id_cleanup.c @@ -479,7 +479,7 @@ static int cleanup_groups(TALLOC_CTX *memctx, } DEBUG(8, ("About to delete group %s\n", name)); - ret = sysdb_delete_group(sysdb, name, 0); + ret = sysdb_delete_group(sysdb, domain, name, 0); if (ret) { DEBUG(2, ("Group delete returned %d (%s)\n", ret, strerror(ret))); diff --git a/src/providers/proxy/proxy_id.c b/src/providers/proxy/proxy_id.c index 4ce00b4f4..a97dd63ef 100644 --- a/src/providers/proxy/proxy_id.c +++ b/src/providers/proxy/proxy_id.c @@ -872,7 +872,7 @@ static int get_gr_name(TALLOC_CTX *mem_ctx, ("Group %s does not exist (or is invalid) on remote server," " deleting!\n", name)); - ret = sysdb_delete_group(sysdb, NULL, gid); + ret = sysdb_delete_group(sysdb, dom, NULL, gid); if (ret == ENOENT) { ret = EOK; } @@ -944,7 +944,7 @@ static int get_gr_gid(TALLOC_CTX *mem_ctx, ("Group %d does not exist (or is invalid) on remote server," " deleting!\n", gid)); - ret = sysdb_delete_group(sysdb, NULL, gid); + ret = sysdb_delete_group(sysdb, dom, NULL, gid); if (ret == ENOENT) { ret = EOK; } diff --git a/src/tests/sysdb-tests.c b/src/tests/sysdb-tests.c index 105d72f87..e11977bdd 100644 --- a/src/tests/sysdb-tests.c +++ b/src/tests/sysdb-tests.c @@ -240,7 +240,8 @@ static int test_remove_nonexistent_group(struct test_data *data) { int ret; - ret = sysdb_delete_group(data->ctx->sysdb, NULL, data->uid); + ret = sysdb_delete_group(data->ctx->sysdb, + data->ctx->domain, NULL, data->uid); return ret; } @@ -298,7 +299,8 @@ static int test_remove_group_by_gid(struct test_data *data) { int ret; - ret = sysdb_delete_group(data->ctx->sysdb, NULL, data->gid); + ret = sysdb_delete_group(data->ctx->sysdb, + data->ctx->domain, NULL, data->gid); if (ret == ENOENT) { ret = EOK; } @@ -2799,7 +2801,7 @@ START_TEST (test_sysdb_memberof_remove_child_group_and_check_ghost) 2, data->msg->elements[0].num_values); /* Remove the parent */ - ret = sysdb_delete_group(data->ctx->sysdb, NULL, delgid); + ret = sysdb_delete_group(data->ctx->sysdb, data->ctx->domain, NULL, delgid); fail_if(ret != EOK, "Cannot delete group %llu [%d]: %s\n", (unsigned long long) data->gid, ret, strerror(ret)); @@ -3811,7 +3813,8 @@ START_TEST(test_odd_characters) /* Delete Group */ - ret = sysdb_delete_group(test_ctx->sysdb, odd_groupname, 20000); + ret = sysdb_delete_group(test_ctx->sysdb, test_ctx->domain, + odd_groupname, 20000); fail_unless(ret == EOK, "sysdb_delete_group error [%d][%s]", ret, strerror(ret)); @@ -4507,7 +4510,7 @@ START_TEST(test_sysdb_subdomain_group_ops) fail_unless(ldb_dn_compare(msg->dn, check_dn) == 0, "Unexpedted DN returned"); - ret = sysdb_delete_domgroup(subdomain, "subdomgroup", 12345); + ret = sysdb_delete_group(subdomain->sysdb, subdomain, "subdomgroup", 12345); fail_unless(ret == EOK, "sysdb_delete_domgroup failed with [%d][%s].", ret, strerror(ret)); -- cgit