bcb4e51a409d94ae670de96afb8483a4f7855294Stephan Bosch/* Copyright (c) 2016-2018 Dovecot authors, see the included COPYING file */
844129da33797fba15314372a0dfab4cfe8162e8Aki Tuomi
844129da33797fba15314372a0dfab4cfe8162e8Aki Tuomi#include "lib.h"
844129da33797fba15314372a0dfab4cfe8162e8Aki Tuomi#include "array.h"
844129da33797fba15314372a0dfab4cfe8162e8Aki Tuomi#include "ldap-private.h"
844129da33797fba15314372a0dfab4cfe8162e8Aki Tuomi
844129da33797fba15314372a0dfab4cfe8162e8Aki Tuomistruct ldap_search_iterator* ldap_search_iterator_init(struct ldap_result *result)
844129da33797fba15314372a0dfab4cfe8162e8Aki Tuomi{
844129da33797fba15314372a0dfab4cfe8162e8Aki Tuomi struct ldap_search_iterator *iter;
844129da33797fba15314372a0dfab4cfe8162e8Aki Tuomi
844129da33797fba15314372a0dfab4cfe8162e8Aki Tuomi i_assert(result->openldap_ret == LDAP_SUCCESS);
844129da33797fba15314372a0dfab4cfe8162e8Aki Tuomi i_assert(result->error_string == NULL);
844129da33797fba15314372a0dfab4cfe8162e8Aki Tuomi
844129da33797fba15314372a0dfab4cfe8162e8Aki Tuomi iter = p_new(result->pool, struct ldap_search_iterator, 1);
844129da33797fba15314372a0dfab4cfe8162e8Aki Tuomi iter->result = result;
844129da33797fba15314372a0dfab4cfe8162e8Aki Tuomi return iter;
844129da33797fba15314372a0dfab4cfe8162e8Aki Tuomi}
844129da33797fba15314372a0dfab4cfe8162e8Aki Tuomi
844129da33797fba15314372a0dfab4cfe8162e8Aki Tuomiconst struct ldap_entry *ldap_search_iterator_next(struct ldap_search_iterator *iter)
844129da33797fba15314372a0dfab4cfe8162e8Aki Tuomi{
c5e46dba179864f6f1adf196d46e7a0371b11914Josef 'Jeff' Sipek if (iter->idx >= array_count(&iter->result->entries))
844129da33797fba15314372a0dfab4cfe8162e8Aki Tuomi return NULL;
c5e46dba179864f6f1adf196d46e7a0371b11914Josef 'Jeff' Sipek return array_idx(&iter->result->entries, iter->idx++);
844129da33797fba15314372a0dfab4cfe8162e8Aki Tuomi}
844129da33797fba15314372a0dfab4cfe8162e8Aki Tuomi
844129da33797fba15314372a0dfab4cfe8162e8Aki Tuomivoid ldap_search_iterator_deinit(struct ldap_search_iterator **iter)
844129da33797fba15314372a0dfab4cfe8162e8Aki Tuomi{
844129da33797fba15314372a0dfab4cfe8162e8Aki Tuomi *iter = NULL;
844129da33797fba15314372a0dfab4cfe8162e8Aki Tuomi}