summaryrefslogtreecommitdiffstats
path: root/src/util/domain_info_utils.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/util/domain_info_utils.c')
-rw-r--r--src/util/domain_info_utils.c18
1 files changed, 18 insertions, 0 deletions
diff --git a/src/util/domain_info_utils.c b/src/util/domain_info_utils.c
index 1ff7c0c6d..8cba7dca7 100644
--- a/src/util/domain_info_utils.c
+++ b/src/util/domain_info_utils.c
@@ -22,6 +22,24 @@
#include "db/sysdb.h"
#include "util/util.h"
+struct sss_domain_info *get_next_domain(struct sss_domain_info *domain,
+ bool descend)
+{
+ struct sss_domain_info *dom;
+
+ dom = domain;
+ if (descend && dom->subdomain_count > 0) {
+ dom = dom->subdomains[0];
+ } else if (dom->next) {
+ dom = dom->next;
+ } else if (descend && dom->parent) {
+ dom = dom->parent->next;
+ } else {
+ dom = NULL;
+ }
+ return dom;
+}
+
struct sss_domain_info *new_subdomain(TALLOC_CTX *mem_ctx,
struct sss_domain_info *parent,
const char *name,