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)7struct 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)19const 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)26void ldap_search_iterator_deinit(struct ldap_search_iterator **iter) 27 { 28 *iter = NULL; 29 } 30