diff options
Diffstat (limited to 'src/db')
-rw-r--r-- | src/db/sysdb.c | 33 | ||||
-rw-r--r-- | src/db/sysdb.h | 17 | ||||
-rw-r--r-- | src/db/sysdb_autofs.c | 3 | ||||
-rw-r--r-- | src/db/sysdb_ops.c | 78 | ||||
-rw-r--r-- | src/db/sysdb_sudo.c | 3 |
5 files changed, 58 insertions, 76 deletions
diff --git a/src/db/sysdb.c b/src/db/sysdb.c index e949cafdc..1e5e8ada1 100644 --- a/src/db/sysdb.c +++ b/src/db/sysdb.c @@ -93,7 +93,6 @@ errno_t sysdb_dn_sanitize(TALLOC_CTX *mem_ctx, const char *input, struct ldb_dn *sysdb_custom_subtree_dn(struct sysdb_ctx *sysdb, TALLOC_CTX *mem_ctx, - const char *domain, const char *subtree_name) { errno_t ret; @@ -111,7 +110,7 @@ struct ldb_dn *sysdb_custom_subtree_dn(struct sysdb_ctx *sysdb, } dn = ldb_dn_new_fmt(tmp_ctx, sysdb->ldb, SYSDB_TMPL_CUSTOM_SUBTREE, - clean_subtree, domain); + clean_subtree, sysdb->domain->name); if (dn) { talloc_steal(mem_ctx, dn); } @@ -119,9 +118,10 @@ struct ldb_dn *sysdb_custom_subtree_dn(struct sysdb_ctx *sysdb, return dn; } + struct ldb_dn *sysdb_custom_dn(struct sysdb_ctx *sysdb, TALLOC_CTX *mem_ctx, - const char *domain, const char *object_name, - const char *subtree_name) + const char *object_name, + const char *subtree_name) { errno_t ret; TALLOC_CTX *tmp_ctx; @@ -145,7 +145,7 @@ struct ldb_dn *sysdb_custom_dn(struct sysdb_ctx *sysdb, TALLOC_CTX *mem_ctx, } dn = ldb_dn_new_fmt(mem_ctx, sysdb->ldb, SYSDB_TMPL_CUSTOM, clean_name, - clean_subtree, domain); + clean_subtree, sysdb->domain->name); done: talloc_free(tmp_ctx); @@ -153,7 +153,7 @@ done: } struct ldb_dn *sysdb_user_dn(struct sysdb_ctx *sysdb, TALLOC_CTX *mem_ctx, - const char *domain, const char *name) + const char *name) { errno_t ret; char *clean_name; @@ -165,14 +165,14 @@ struct ldb_dn *sysdb_user_dn(struct sysdb_ctx *sysdb, TALLOC_CTX *mem_ctx, } dn = ldb_dn_new_fmt(mem_ctx, sysdb->ldb, SYSDB_TMPL_USER, - clean_name, domain); + clean_name, sysdb->domain->name); talloc_free(clean_name); return dn; } struct ldb_dn *sysdb_group_dn(struct sysdb_ctx *sysdb, TALLOC_CTX *mem_ctx, - const char *domain, const char *name) + const char *name) { errno_t ret; char *clean_name; @@ -184,14 +184,14 @@ struct ldb_dn *sysdb_group_dn(struct sysdb_ctx *sysdb, TALLOC_CTX *mem_ctx, } dn = ldb_dn_new_fmt(mem_ctx, sysdb->ldb, SYSDB_TMPL_GROUP, - clean_name, domain); + clean_name, sysdb->domain->name); talloc_free(clean_name); return dn; } struct ldb_dn *sysdb_netgroup_dn(struct sysdb_ctx *sysdb, TALLOC_CTX *mem_ctx, - const char *domain, const char *name) + const char *name) { errno_t ret; char *clean_name; @@ -203,16 +203,16 @@ struct ldb_dn *sysdb_netgroup_dn(struct sysdb_ctx *sysdb, TALLOC_CTX *mem_ctx, } dn = ldb_dn_new_fmt(mem_ctx, sysdb->ldb, SYSDB_TMPL_NETGROUP, - clean_name, domain); + clean_name, sysdb->domain->name); talloc_free(clean_name); return dn; } -struct ldb_dn *sysdb_netgroup_base_dn(struct sysdb_ctx *sysdb, TALLOC_CTX *mem_ctx, - const char *domain) +struct ldb_dn *sysdb_netgroup_base_dn(struct sysdb_ctx *sysdb, TALLOC_CTX *mem_ctx) { - return ldb_dn_new_fmt(mem_ctx, sysdb->ldb, SYSDB_TMPL_NETGROUP_BASE, domain); + return ldb_dn_new_fmt(mem_ctx, sysdb->ldb, SYSDB_TMPL_NETGROUP_BASE, + sysdb->domain->name); } errno_t sysdb_get_rdn(struct sysdb_ctx *sysdb, TALLOC_CTX *mem_ctx, @@ -279,10 +279,9 @@ errno_t sysdb_group_dn_name(struct sysdb_ctx *sysdb, TALLOC_CTX *mem_ctx, return sysdb_get_rdn(sysdb, mem_ctx, _dn, NULL, _name); } -struct ldb_dn *sysdb_domain_dn(struct sysdb_ctx *sysdb, TALLOC_CTX *mem_ctx, - const char *domain) +struct ldb_dn *sysdb_domain_dn(struct sysdb_ctx *sysdb, TALLOC_CTX *mem_ctx) { - return ldb_dn_new_fmt(mem_ctx, sysdb->ldb, SYSDB_DOM_BASE, domain); + return ldb_dn_new_fmt(mem_ctx, sysdb->ldb, SYSDB_DOM_BASE, sysdb->domain->name); } struct ldb_context *sysdb_ctx_get_ldb(struct sysdb_ctx *sysdb) diff --git a/src/db/sysdb.h b/src/db/sysdb.h index f74fceec3..b53b9880f 100644 --- a/src/db/sysdb.h +++ b/src/db/sysdb.h @@ -319,22 +319,19 @@ int sysdb_error_to_errno(int ldberr); errno_t sysdb_get_rdn(struct sysdb_ctx *sysdb, void *mem_ctx, const char *_dn, char **_name, char **_val); struct ldb_dn *sysdb_user_dn(struct sysdb_ctx *sysdb, void *mem_ctx, - const char *domain, const char *name); + const char *name); struct ldb_dn *sysdb_group_dn(struct sysdb_ctx *sysdb, void *mem_ctx, - const char *domain, const char *name); + const char *name); struct ldb_dn *sysdb_netgroup_dn(struct sysdb_ctx *sysdb, void *mem_ctx, - const char *domain, const char *name); -struct ldb_dn *sysdb_netgroup_base_dn(struct sysdb_ctx *sysdb, void *mem_ctx, - const char *domain); + const char *name); +struct ldb_dn *sysdb_netgroup_base_dn(struct sysdb_ctx *sysdb, void *mem_ctx); errno_t sysdb_group_dn_name(struct sysdb_ctx *sysdb, void *mem_ctx, const char *dn_str, char **name); -struct ldb_dn *sysdb_domain_dn(struct sysdb_ctx *sysdb, void *mem_ctx, - const char *domain); +struct ldb_dn *sysdb_domain_dn(struct sysdb_ctx *sysdb, void *mem_ctx); struct ldb_dn *sysdb_custom_dn(struct sysdb_ctx *sysdb, void *mem_ctx, - const char *domain, const char *object_name, - const char *subtree_name); + const char *object_name, + const char *subtree_name); struct ldb_dn *sysdb_custom_subtree_dn(struct sysdb_ctx *sysdb, void *mem_ctx, - const char *domain, const char *subtree_name); char *sysdb_user_strdn(TALLOC_CTX *mem_ctx, diff --git a/src/db/sysdb_autofs.c b/src/db/sysdb_autofs.c index bf4e9b172..c5ec4c8c6 100644 --- a/src/db/sysdb_autofs.c +++ b/src/db/sysdb_autofs.c @@ -31,8 +31,7 @@ sysdb_autofsmap_dn(TALLOC_CTX *mem_ctx, struct sysdb_ctx *sysdb, const char *map_name) { - return sysdb_custom_dn(sysdb, mem_ctx, sysdb->domain->name, - map_name, AUTOFS_MAP_SUBDIR); + return sysdb_custom_dn(sysdb, mem_ctx, map_name, AUTOFS_MAP_SUBDIR); } static struct ldb_dn * diff --git a/src/db/sysdb_ops.c b/src/db/sysdb_ops.c index 52da27d3c..52f0cef54 100644 --- a/src/db/sysdb_ops.c +++ b/src/db/sysdb_ops.c @@ -217,7 +217,7 @@ int sysdb_search_user_by_name(TALLOC_CTX *mem_ctx, return ENOMEM; } - basedn = sysdb_user_dn(sysdb, tmp_ctx, sysdb->domain->name, name); + basedn = sysdb_user_dn(sysdb, tmp_ctx, name); if (!basedn) { ret = ENOMEM; goto done; @@ -319,7 +319,7 @@ int sysdb_search_group_by_name(TALLOC_CTX *mem_ctx, return ENOMEM; } - basedn = sysdb_group_dn(sysdb, tmp_ctx, sysdb->domain->name, name); + basedn = sysdb_group_dn(sysdb, tmp_ctx, name); if (!basedn) { ret = ENOMEM; goto done; @@ -421,7 +421,7 @@ int sysdb_search_netgroup_by_name(TALLOC_CTX *mem_ctx, return ENOMEM; } - basedn = sysdb_netgroup_dn(sysdb, tmp_ctx, sysdb->domain->name, name); + basedn = sysdb_netgroup_dn(sysdb, tmp_ctx, name); if (!basedn) { ret = ENOMEM; goto done; @@ -525,7 +525,7 @@ int sysdb_set_user_attr(struct sysdb_ctx *sysdb, return ENOMEM; } - dn = sysdb_user_dn(sysdb, tmp_ctx, sysdb->domain->name, name); + dn = sysdb_user_dn(sysdb, tmp_ctx, name); if (!dn) { ret = ENOMEM; goto done; @@ -560,7 +560,7 @@ int sysdb_set_group_attr(struct sysdb_ctx *sysdb, goto done; } - dn = sysdb_group_dn(sysdb, tmp_ctx, sysdb->domain->name, name); + dn = sysdb_group_dn(sysdb, tmp_ctx, name); if (!dn) { ret = ENOMEM; goto done; @@ -593,7 +593,7 @@ int sysdb_set_netgroup_attr(struct sysdb_ctx *sysdb, return ENOMEM; } - dn = sysdb_netgroup_dn(sysdb, tmp_ctx, sysdb->domain->name, name); + dn = sysdb_netgroup_dn(sysdb, tmp_ctx, name); if (!dn) { ret = ENOMEM; goto done; @@ -631,7 +631,7 @@ int sysdb_get_new_id(struct sysdb_ctx *sysdb, return ENOMEM; } - base_dn = sysdb_domain_dn(sysdb, tmp_ctx, domain->name); + base_dn = sysdb_domain_dn(sysdb, tmp_ctx); if (!base_dn) { talloc_zfree(tmp_ctx); return ENOMEM; @@ -797,7 +797,7 @@ int sysdb_add_basic_user(struct sysdb_ctx *sysdb, } /* user dn */ - msg->dn = sysdb_user_dn(sysdb, msg, sysdb->domain->name, name); + msg->dn = sysdb_user_dn(sysdb, msg, name); if (!msg->dn) { ERROR_OUT(ret, ENOMEM, done); } @@ -1011,7 +1011,7 @@ int sysdb_add_user(struct sysdb_ctx *sysdb, goto done; } - tmpdn = sysdb_user_dn(sysdb, tmp_ctx, sysdb->domain->name, name); + tmpdn = sysdb_user_dn(sysdb, tmp_ctx, name); if (!tmpdn) { ERROR_OUT(ret, ENOMEM, done); } @@ -1117,7 +1117,7 @@ int sysdb_add_basic_group(struct sysdb_ctx *sysdb, } /* group dn */ - msg->dn = sysdb_group_dn(sysdb, msg, sysdb->domain->name, name); + msg->dn = sysdb_group_dn(sysdb, msg, name); if (!msg->dn) { ERROR_OUT(ret, ENOMEM, done); } @@ -1375,7 +1375,7 @@ int sysdb_add_basic_netgroup(struct sysdb_ctx *sysdb, } /* netgroup dn */ - msg->dn = sysdb_netgroup_dn(sysdb, msg, sysdb->domain->name, name); + msg->dn = sysdb_netgroup_dn(sysdb, msg, name); if (!msg->dn) { ERROR_OUT(ret, ENOMEM, done); } @@ -1767,34 +1767,25 @@ sysdb_group_membership_mod(struct sysdb_ctx *sysdb, } if (type == SYSDB_MEMBER_USER) { - member_dn = sysdb_user_dn(sysdb, tmp_ctx, sysdb->domain->name, member); - if (!member_dn) { - ret = ENOMEM; - goto done; - } - - group_dn = sysdb_group_dn(sysdb, tmp_ctx, sysdb->domain->name, group); - if (!group_dn) { - ret = ENOMEM; - goto done; - } + member_dn = sysdb_user_dn(sysdb, tmp_ctx, member); } else if (type == SYSDB_MEMBER_GROUP) { - member_dn = sysdb_group_dn(sysdb, tmp_ctx, sysdb->domain->name, member); - if (!member_dn) { - ret = ENOMEM; - goto done; - } - - group_dn = sysdb_group_dn(sysdb, tmp_ctx, sysdb->domain->name, group); - if (!group_dn) { - ret = ENOMEM; - goto done; - } + member_dn = sysdb_group_dn(sysdb, tmp_ctx, member); } else { ret = EINVAL; goto done; } + if (!member_dn) { + ret = ENOMEM; + goto done; + } + + group_dn = sysdb_group_dn(sysdb, tmp_ctx, group); + if (!group_dn) { + ret = ENOMEM; + goto done; + } + ret = sysdb_mod_group_member(sysdb, member_dn, group_dn, modify_op); done: @@ -1900,8 +1891,7 @@ int sysdb_search_custom(TALLOC_CTX *mem_ctx, return EINVAL; } - basedn = sysdb_custom_subtree_dn(sysdb, mem_ctx, - sysdb->domain->name, subtree_name); + basedn = sysdb_custom_subtree_dn(sysdb, mem_ctx, subtree_name); if (basedn == NULL) { DEBUG(1, ("sysdb_custom_subtree_dn failed.\n")); return ENOMEM; @@ -1940,8 +1930,7 @@ int sysdb_search_custom_by_name(TALLOC_CTX *mem_ctx, return ENOMEM; } - basedn = sysdb_custom_dn(sysdb, tmp_ctx, - sysdb->domain->name, object_name, subtree_name); + basedn = sysdb_custom_dn(sysdb, tmp_ctx, object_name, subtree_name); if (basedn == NULL) { DEBUG(1, ("sysdb_custom_dn failed.\n")); ret = ENOMEM; @@ -2023,8 +2012,7 @@ int sysdb_store_custom(struct sysdb_ctx *sysdb, goto done; } - msg->dn = sysdb_custom_dn(sysdb, tmp_ctx, - sysdb->domain->name, object_name, subtree_name); + msg->dn = sysdb_custom_dn(sysdb, tmp_ctx, object_name, subtree_name); if (!msg->dn) { DEBUG(1, ("sysdb_custom_dn failed.\n")); ret = ENOMEM; @@ -2094,7 +2082,7 @@ int sysdb_delete_custom(struct sysdb_ctx *sysdb, return ENOMEM; } - dn = sysdb_custom_dn(sysdb, tmp_ctx, sysdb->domain->name, object_name, subtree_name); + dn = sysdb_custom_dn(sysdb, tmp_ctx, object_name, subtree_name); if (dn == NULL) { DEBUG(1, ("sysdb_custom_dn failed.\n")); ret = ENOMEM; @@ -2985,7 +2973,7 @@ errno_t sysdb_mod_netgroup_tuple(struct sysdb_ctx *sysdb, ERROR_OUT(ret, ENOMEM, done); } - msg->dn = sysdb_netgroup_dn(sysdb, msg, sysdb->domain->name, netgroup); + msg->dn = sysdb_netgroup_dn(sysdb, msg, netgroup); if (!msg->dn) { ERROR_OUT(ret, ENOMEM, done); } @@ -3043,7 +3031,7 @@ errno_t sysdb_mod_netgroup_member(struct sysdb_ctx *sysdb, ERROR_OUT(ret, ENOMEM, done); } - msg->dn = sysdb_netgroup_dn(sysdb, msg, sysdb->domain->name, netgroup); + msg->dn = sysdb_netgroup_dn(sysdb, msg, netgroup); if (!msg->dn) { ERROR_OUT(ret, ENOMEM, done); } @@ -3088,15 +3076,15 @@ errno_t sysdb_remove_attrs(struct sysdb_ctx *sysdb, switch(type) { case SYSDB_MEMBER_USER: - msg->dn = sysdb_user_dn(sysdb, msg, sysdb->domain->name, name); + msg->dn = sysdb_user_dn(sysdb, msg, name); break; case SYSDB_MEMBER_GROUP: - msg->dn = sysdb_group_dn(sysdb, msg, sysdb->domain->name, name); + msg->dn = sysdb_group_dn(sysdb, msg, name); break; case SYSDB_MEMBER_NETGROUP: - msg->dn = sysdb_netgroup_dn(sysdb, msg, sysdb->domain->name, name); + msg->dn = sysdb_netgroup_dn(sysdb, msg, name); break; case SYSDB_MEMBER_SERVICE: diff --git a/src/db/sysdb_sudo.c b/src/db/sysdb_sudo.c index e1434e254..39b1504da 100644 --- a/src/db/sysdb_sudo.c +++ b/src/db/sysdb_sudo.c @@ -545,8 +545,7 @@ errno_t sysdb_sudo_purge_all(struct sysdb_ctx *sysdb) tmp_ctx = talloc_new(NULL); NULL_CHECK(tmp_ctx, ret, done); - base_dn = sysdb_custom_subtree_dn(sysdb, tmp_ctx, sysdb->domain->name, - SUDORULE_SUBDIR); + base_dn = sysdb_custom_subtree_dn(sysdb, tmp_ctx, SUDORULE_SUBDIR); NULL_CHECK(base_dn, ret, done); ret = sysdb_delete_recursive(sysdb, base_dn, true); |