1 /* Copyright (c) 2016-2018 Dovecot authors, see the included COPYING file */
2 
3 #include "lib.h"
4 #include "array.h"
5 #include "ldap-private.h"
6 
ldap_search_iterator_init(struct ldap_result * result)7 struct ldap_search_iterator* ldap_search_iterator_init(struct ldap_result *result)
8 {
9 	struct ldap_search_iterator *iter;
10 
11 	i_assert(result->openldap_ret == LDAP_SUCCESS);
12 	i_assert(result->error_string == NULL);
13 
14 	iter = p_new(result->pool, struct ldap_search_iterator, 1);
15 	iter->result = result;
16 	return iter;
17 }
18 
ldap_search_iterator_next(struct ldap_search_iterator * iter)19 const struct ldap_entry *ldap_search_iterator_next(struct ldap_search_iterator *iter)
20 {
21 	if (iter->idx >= array_count(&iter->result->entries))
22 		return NULL;
23 	return array_idx(&iter->result->entries, iter->idx++);
24 }
25 
ldap_search_iterator_deinit(struct ldap_search_iterator ** iter)26 void ldap_search_iterator_deinit(struct ldap_search_iterator **iter)
27 {
28 	*iter = NULL;
29 }
30