/* Copyright (c) 2016-2018 Dovecot authors, see the included COPYING file */

#include "lib.h"
#include "array.h"
#include "ldap-private.h"

struct ldap_search_iterator* ldap_search_iterator_init(struct ldap_result *result)
{
	struct ldap_search_iterator *iter;

	i_assert(result->openldap_ret == LDAP_SUCCESS);
	i_assert(result->error_string == NULL);

	iter = p_new(result->pool, struct ldap_search_iterator, 1);
	iter->result = result;
	return iter;
}

const struct ldap_entry *ldap_search_iterator_next(struct ldap_search_iterator *iter)
{
	if (iter->idx >= array_count(&iter->result->entries))
		return NULL;
	return array_idx(&iter->result->entries, iter->idx++);
}

void ldap_search_iterator_deinit(struct ldap_search_iterator **iter)
{
	*iter = NULL;
}
