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