1#include <unistd.h>
2#include <ldap.h>
3
4int ldap_get_lderrno(LDAP *ld, char **m, char **s)
5{
6	int rc, lderrno;
7
8	rc = ldap_get_option(ld, LDAP_OPT_ERROR_NUMBER, &lderrno);
9	if (rc != LDAP_SUCCESS)
10		return rc;
11
12	if (s != NULL)
13	{
14		rc = ldap_get_option(ld, LDAP_OPT_ERROR_STRING, s);
15		if (rc != LDAP_SUCCESS)
16			return rc;
17	}
18
19	if (s != NULL)
20	{
21		rc = ldap_get_option(ld, LDAP_OPT_MATCHED_DN, m);
22		if (rc != LDAP_SUCCESS)
23			return rc;
24	}
25
26	return lderrno;
27}
28
29int ldap_set_lderrno(LDAP *ld, int lderrno, const char *m, const char *s)
30{
31	int rc;
32
33	rc = ldap_set_option(ld, LDAP_OPT_ERROR_NUMBER, &lderrno);
34	if (rc != LDAP_SUCCESS)
35		return rc;
36
37	if (s != NULL)
38	{
39		rc = ldap_set_option(ld, LDAP_OPT_ERROR_STRING, s);
40		if (rc != LDAP_SUCCESS)
41			return rc;
42	}
43
44	if (m != NULL)
45	{
46		rc = ldap_set_option(ld, LDAP_OPT_MATCHED_DN, m);
47		if (rc != LDAP_SUCCESS)
48			return rc;
49	}
50
51	return LDAP_SUCCESS;
52}
53
54int ldap_version(void *ver)
55{
56	return LDAP_API_VERSION;
57}
58