1
0
mirror of https://github.com/samba-team/samba.git synced 2025-02-24 13:57:43 +03:00

winbindd: add find_routing_from_namespace_noinit()

Signed-off-by: Stefan Metzmacher <metze@samba.org>
Reviewed-by: Ralph Boehme <slow@samba.org>
This commit is contained in:
Stefan Metzmacher 2018-05-17 10:37:34 +02:00 committed by Ralph Boehme
parent 2fdb34c508
commit 800048c131
2 changed files with 47 additions and 0 deletions

View File

@ -515,6 +515,7 @@ void winbindd_ping_offline_domains(struct tevent_context *ev,
bool init_domain_list(void);
struct winbindd_domain *find_domain_from_name_noinit(const char *domain_name);
struct winbindd_domain *find_trust_from_name_noinit(const char *domain_name);
struct winbindd_domain *find_routing_from_namespace_noinit(const char *name_space);
struct winbindd_domain *find_domain_from_name(const char *domain_name);
struct winbindd_domain *find_domain_from_sid_noinit(const struct dom_sid *sid);
struct winbindd_domain *find_trust_from_sid_noinit(const struct dom_sid *sid);

View File

@ -1690,6 +1690,52 @@ struct winbindd_domain *find_trust_from_name_noinit(const char *domain_name)
return NULL;
}
struct winbindd_domain *find_routing_from_namespace_noinit(const char *namespace)
{
struct winbindd_domain *domain;
/* Search through list */
for (domain = domain_list(); domain != NULL; domain = domain->next) {
bool match;
match = strequal(namespace, domain->name);
if (match) {
break;
}
if (domain->alt_name == NULL) {
continue;
}
match = strequal(namespace, domain->alt_name);
if (match) {
break;
}
if (domain->fti == NULL) {
continue;
}
match = trust_forest_info_match_tln_namespace(domain->fti,
namespace);
if (match) {
break;
}
}
if (domain == NULL) {
/* Not found */
return NULL;
}
if (domain->routing_domain != NULL) {
return domain->routing_domain;
}
return domain;
}
struct winbindd_domain *find_domain_from_name(const char *domain_name)
{
struct winbindd_domain *domain;