I'm the maintainer of nss_ldapd [1] which is a replacement for nss_ldap.
I have been trying to get rid of using deprecated functions while
compiling with OpenLDAP 2.4.7.
One of the changes I made was using ïldap_str2dn() instead of
ldap_explode_dn() and ldap_explode_rdn() to parse the DN of entries
returned. However, I ran into the following.
The relevant definitions for ïïldap_str2dn() in OpenLDAP 2.4.7 are:
typedef struct ldap_ava {
[...]
} LDAPAVA;
typedef LDAPAVA** LDAPRDN;
typedef LDAPRDN* LDAPDN;
LDAP_F( int )
ldap_str2dn LDAP_P((
LDAP_CONST char *str,
LDAPDN *dn,
unsigned flags ));
While OpenLDAP 2.1.30 (another version I would like to support) there
is:
typedef struct ldap_ava {
[...]
} LDAPAVA;
typedef LDAPAVA** LDAPRDN;
typedef LDAPRDN** LDAPDN;
LDAP_F( int )
ldap_str2dn LDAP_P((
LDAP_CONST char *str,
LDAPDN **dn,
unsigned flags ));
This changes the second parameter from ïstruct ldap_ava ******dn
to ïstruct ldap_****dn.
What is the best way to use lpap_str2dn() and still be able to compile
(and run correctly because it is only a warning with most compilers)
with both versions of OpenLDAP? Or would it be better to avoid the
function completely?
Thanks.
[1] http://ch.tudelft.nl/~arthur/nss-ldapd/
--
-- arthur - arthur@ch.tudelft.nl - http://ch.tudelft.nl/~arthur --
Attachment:
signature.asc
Description: This is a digitally signed message part