Hi Côme,

Am 11.08.2015 um 16:58 schrieb Côme BERNIGAUD:
On 2015-08-11 00:36, Rainer Jung wrote:
The current problems should be mostly around the above four compiler
warnings. I can test any patches you want me to test.

Can you test including the attached file in ext/ldap/ldap.c, and not
defining HAVE_3ARG_SETREBINDPROC and LDAP_CONTROL_PAGEDRESULTS ?

thanks for the patch proposal. There's a few problems with it and I will come back to you with an alternative proposal soon. For the moment:


- the definition of ldap_control_find in terms of at the top of ldap.c currently is protected by

#if !defined(HAVE_LDAP_CONTROL_FIND)

It should be

#if defined(LDAP_CONTROL_PAGEDRESULTS) && !defined(HAVE_LDAP_CONTROL_FIND)

That's not related to your patch.


- in

void ldap_memvfree( void **value )
{
  ldap_value_free(value);
}


it should probably be

 ldap_value_free((char **)value);

otherwise we get compiler warnings.


- instead of ldap_open() we can use ldap_init() (recommended).


- using ldap_open() or ldap_init() with a url does not work, we have to use host and port.


- the use of ldap_sasl_bind_s() in PHP_FUNCTION(ldap_bind) does not work, without setting "LDAP_OPT_PROTOCOL_VERSION" to LDAP_VERSION3 using ldap_set_option(). Maybe it works for OpenLDAP, but Netscape and Solaris document it must be set and indeed return LDAP_NOT_SUPPORTED immediately otherwise. But since in PHP_FUNCTION(ldap_bind) no SASL functionality is actually being used, I propose to use ldap_simple_bind_s() instead of ldap_sasl_bind_s(). It is not deprecated and using it actually simplifies the code a bit.


As I said, I'll come up with a patch proposal soon.

The patch should also help for other LDAP implementations than OpenLDAP or Solaris.

Regards,

Rainer

--
PHP Internals - PHP Runtime Development Mailing List
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to