summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMichal Židek <mzidek@redhat.com>2017-06-21 13:01:40 +0200
committerJakub Hrozek <jhrozek@redhat.com>2017-07-11 12:09:48 +0200
commit386c5f2e134beb6fcfc474f347e226ac0dedfef5 (patch)
tree192dec392c502acf245a2780982268fbe4597206
parent6d57cd501c28aa52731c56cd751bbc404f991ae0 (diff)
downloadsssd-386c5f2e134beb6fcfc474f347e226ac0dedfef5.tar.gz
sssd-386c5f2e134beb6fcfc474f347e226ac0dedfef5.tar.xz
sssd-386c5f2e134beb6fcfc474f347e226ac0dedfef5.zip
SDAP: Add sdap_domain_copy_search_bases
Add function to copy search bases from one sdap_domain to another. Resolves: https://pagure.io/SSSD/sssd/issue/3435 Reviewed-by: Fabiano Fidêncio <fidencio@redhat.com>
-rw-r--r--src/providers/ad/ad_subdomains.c8
-rw-r--r--src/providers/ipa/ipa_subdomains_server.c8
-rw-r--r--src/providers/ldap/sdap.c12
-rw-r--r--src/providers/ldap/sdap.h3
4 files changed, 17 insertions, 14 deletions
diff --git a/src/providers/ad/ad_subdomains.c b/src/providers/ad/ad_subdomains.c
index e35041c5a..749c5b42f 100644
--- a/src/providers/ad/ad_subdomains.c
+++ b/src/providers/ad/ad_subdomains.c
@@ -158,13 +158,7 @@ update_parent_sdap_list(struct sdap_domain *parent_list,
}
/* Update the search bases */
- sditer->search_bases = child_sdap->search_bases;
- sditer->user_search_bases = child_sdap->user_search_bases;
- sditer->group_search_bases = child_sdap->group_search_bases;
- sditer->netgroup_search_bases = child_sdap->netgroup_search_bases;
- sditer->sudo_search_bases = child_sdap->sudo_search_bases;
- sditer->service_search_bases = child_sdap->service_search_bases;
- sditer->autofs_search_bases = child_sdap->autofs_search_bases;
+ sdap_domain_copy_search_bases(sditer, child_sdap);
return EOK;
}
diff --git a/src/providers/ipa/ipa_subdomains_server.c b/src/providers/ipa/ipa_subdomains_server.c
index 443d83824..c908d9cfd 100644
--- a/src/providers/ipa/ipa_subdomains_server.c
+++ b/src/providers/ipa/ipa_subdomains_server.c
@@ -926,13 +926,7 @@ static errno_t ipa_server_create_trusts_step(struct tevent_req *req)
/* Replace basedn and search bases from sdom_b with values
* from sdom_a */
- sdom_b->search_bases = sdom_a->search_bases;
- sdom_b->user_search_bases = sdom_a->user_search_bases;
- sdom_b->group_search_bases = sdom_a->group_search_bases;
- sdom_b->netgroup_search_bases = sdom_a->netgroup_search_bases;
- sdom_b->sudo_search_bases = sdom_a->sudo_search_bases;
- sdom_b->service_search_bases = sdom_a->service_search_bases;
- sdom_b->autofs_search_bases = sdom_a->autofs_search_bases;
+ sdap_domain_copy_search_bases(sdom_b, sdom_a);
}
}
diff --git a/src/providers/ldap/sdap.c b/src/providers/ldap/sdap.c
index d562a96e2..b6b1c91cb 100644
--- a/src/providers/ldap/sdap.c
+++ b/src/providers/ldap/sdap.c
@@ -1732,3 +1732,15 @@ size_t sdap_steal_objects_in_dom(struct sdap_options *opts,
return copied;
}
+
+void sdap_domain_copy_search_bases(struct sdap_domain *to,
+ struct sdap_domain *from)
+{
+ to->search_bases = from->search_bases;
+ to->user_search_bases = from->user_search_bases;
+ to->group_search_bases = from->group_search_bases;
+ to->netgroup_search_bases = from->netgroup_search_bases;
+ to->sudo_search_bases = from->sudo_search_bases;
+ to->service_search_bases = from->service_search_bases;
+ to->autofs_search_bases = from->autofs_search_bases;
+}
diff --git a/src/providers/ldap/sdap.h b/src/providers/ldap/sdap.h
index afdc01948..c1a156764 100644
--- a/src/providers/ldap/sdap.h
+++ b/src/providers/ldap/sdap.h
@@ -645,4 +645,7 @@ bool sdap_object_in_domain(struct sdap_options *opts,
struct sysdb_attrs *obj,
struct sss_domain_info *dom);
+void sdap_domain_copy_search_bases(struct sdap_domain *to,
+ struct sdap_domain *from);
+
#endif /* _SDAP_H_ */