Filed bug: http://issues.apache.org/bugzilla/show_bug.cgi?id=37814

Made a couple of suggestions
1) use #if's to determine if it's windows and pass in the appropriate sizelimit to ldap_search_ext_s on windows 2) use ldap_search_s instead of ldap_search_ext_s. It doesn't look like util_ldap.c is even using any of the extended features of ldap_search_ext_s so why bother using it.

I'd be more than willing to create the patch if someone wants to comment on which solution they like more.

Andy


Andy Wang wrote:

William A. Rowe, Jr. wrote:


Please clarify, this is the win32 WLDAP32.dll client to OpenLDAP 2.2
backend ldap server (e.g. on unix or whatever), ssl/tls is not involved?

We tried the following code just to see if it's possible to override sizelimit. It works fine with openldap as the SDK (on Unix) but it doesn't work for Windows. Is there something goofy that needs to be done with the Microsoft LDAP library to set this option? Even with it set, on Windows it attempts to send a size limit of 4294967295 instead of 10.

Andy


--- util_ldap.c.orig    2005-04-11 10:49:57.000000000 -0500
+++ util_ldap.c 2005-11-30 16:46:41.000000000 -0600
@@ -240,6 +240,7 @@
{
    int result = 0;
    int failures = 0;
+    int sizelimit = 10;
    int version  = LDAP_VERSION3;

    util_ldap_state_t *st = (util_ldap_state_t *)ap_get_module_config(
@@ -311,6 +312,10 @@
            return(-1);
        }

+//        #if APR_HAS_MICROSOFT_LDAPSDK
+ ldap_set_option (ldc->ldap, LDAP_OPT_SIZELIMIT, (void *)&sizelimit);
+ //       #endif
+
        /* Set the alias dereferencing option */
        ldap_set_option(ldc->ldap, LDAP_OPT_DEREF, &(ldc->deref));

Reply via email to