[Date Prev][Date Next]
Re: LDAP 2.0 CVS and php4 ...
At 10:46 AM 8/25/00 -0700, Anthony Brock wrote:
>While attempting to compile an Apache web server with an ldap (2.0cvs) enabled php4 (the latest version off their web site), I encountered a minor but annoying error. Basically, the php4 source code references a function as:
>ldap_get_lderrno(ldap, NULL, NULL)
We don't provide this function. It's likely the php4 source code
needs to be updated to be compatible with 2.0 API which is based
upon the (expired) IETF LDAPext LDAP C API I-D.
>php4 compiles without errors using this function,
>but when linking with the Apache web server, I get a linker error. If I change all references from the above to:
>ldap_result2error(ldap, NULL, NULL)
>it appears to function normally. Is this the correct substitution?
no. Use ldap_get_option(ldap, LDAP_OPT_ERROR_NUMBER, &lderr );
>Also, is this a php4 error, or should ldap-2.0 have a macro to fix this?
Neither. PHP was likely designed to support the Netscape/Mozilla API
and/or the OpenLDAP 1.x/U-MICH 3.3 API. PHP likely needs to be updated
to support the OpenLDAP 2.x.
>If it is a php4 error, then I will redirect this message to them. However, assuming they are using a standard API, it might a good idea to create an appropriate macro.
There isn't a standard LDAP C API. There is RFC 1823 (informational)
which, for the most part, OpenLDAP 1.x/U-Mich 3.3 are compatible with.
There is an expired IETF I-D which OpenLDAP 2.x is, for the most
part, compatible with. And there vendor APIs which are somewhere
in between (or even closer to the expired IETF I-D).
We're hope the IETF updates RFC 1823 so that LDAP implementors
have a referencable specification to converge upon. Until then,
we'll try to follow applicable I-Ds where and when it makes sense.
But one has to remember I-Ds are 'works in progress'....