s3:winbind:pwent: move wb_next_domain() to winbindd_util.c for re-use
authorMichael Adam <obnox@samba.org>
Tue, 20 Jan 2015 09:07:59 +0000 (10:07 +0100)
committerGünther Deschner <gd@samba.org>
Mon, 16 Mar 2015 19:26:51 +0000 (20:26 +0100)
Signed-off-by: Michael Adam <obnox@samba.org>
Reviewed-by: Guenther Deschner <gd@samba.org>
source3/winbindd/wb_next_pwent.c
source3/winbindd/winbindd_proto.h
source3/winbindd/winbindd_util.c

index 0de7fd109c5fac28591058b8db7c062c7b8eab78..9bd2a094927a78820f0c55dcd7e627ff00201aa0 100644 (file)
@@ -31,21 +31,6 @@ struct wb_next_pwent_state {
 static void wb_next_pwent_fetch_done(struct tevent_req *subreq);
 static void wb_next_pwent_fill_done(struct tevent_req *subreq);
 
-static struct winbindd_domain *wb_next_domain(struct winbindd_domain *domain)
-{
-       if (domain == NULL) {
-               domain = domain_list();
-       } else {
-               domain = domain->next;
-       }
-
-       if ((domain != NULL)
-           && sid_check_is_our_sam(&domain->sid)) {
-               domain = domain->next;
-       }
-       return domain;
-}
-
 struct tevent_req *wb_next_pwent_send(TALLOC_CTX *mem_ctx,
                                      struct tevent_context *ev,
                                      struct getpwent_state *gstate,
index 66ddaf7d2072ae2927aa4246d954dcfeac66fff6..37931467aa64d7050924bcd6d773d74bff1ec249 100644 (file)
@@ -404,6 +404,7 @@ NTSTATUS winbind_dual_SamLogon(struct winbindd_domain *domain,
 /* The following definitions come from winbindd/winbindd_util.c  */
 
 struct winbindd_domain *domain_list(void);
+struct winbindd_domain *wb_next_domain(struct winbindd_domain *domain);
 bool domain_is_forest_root(const struct winbindd_domain *domain);
 void rescan_trusted_domains(struct tevent_context *ev, struct tevent_timer *te,
                            struct timeval now, void *private_data);
index b1b93266a2ad2b39c37e035318de07f1415c09fe..a0d42a59131a92519319fc7ec70d4a3c102fe341 100644 (file)
@@ -73,6 +73,25 @@ static void free_domain_list(void)
        }
 }
 
+/**
+ * Iterator for winbindd's domain list.
+ * To be used (e.g.) in tevent based loops.
+ */
+struct winbindd_domain *wb_next_domain(struct winbindd_domain *domain)
+{
+       if (domain == NULL) {
+               domain = domain_list();
+       } else {
+               domain = domain->next;
+       }
+
+       if ((domain != NULL)
+           && sid_check_is_our_sam(&domain->sid)) {
+               domain = domain->next;
+       }
+       return domain;
+}
+
 static bool is_internal_domain(const struct dom_sid *sid)
 {
        if (sid == NULL)