Sorry for the delay.
We use our own z/OS specific SDK. There is also a Tivoli SDK , [see Eric
Covener's appends and
http://issues.apache.org/bugzilla/attachment.cgi?id=19394  waiting for
input], which shares some commonality with z/OS  (Tivoli can accept the -1
without a problem, but it acts like 0).

Thoughts are:


1) LDAP_HAS_ZOS_LDAPSDK isn't an apache define yet. (The Tivoli append adds
a LDAP_HAS_TIVOLI_LDAPSDK to apu-conf.m4, and we would do similar). So if it
shouldn't be put in svn yet skip the top 3 lines and what we're left with
isn't much different than the original hardcoded -1, but at least it puts
some doc in the code about whats going on.

#ifdef LDAP_HAS_ZOS_LDAPSDK
#define LDAP_LIMIT_VALUE LDAP_NO_LIMIT
#else
#ifdef LDAP_DEFAULT_LIMIT
#define LDAP_LIMIT_VALUE LDAP_DEFAULT_LIMIT
#else
#define LDAP_LIMIT_VALUE -1 /* equivalent to LDAP_DEFAULT_LIMIT */
#endif
#endif

2)Or the flipside, assuming everyone else who defines 0 and not -1 wants to
use 0:

#ifdef LDAP_HAS_NOVELL_LDAPSDK
#define LDAP_LIMIT_VALUE -1
#else
#ifdef LDAP_DEFAULT_LIMIT
#define LDAP_LIMIT_VALUE LDAP_DEFAULT_TIME
#else
#ifdef LDAP_NO_LIMIT
#define LDAP_LIMIT_VALUE LDAP_NO_LIMIT
#else
#define LDAP_LIMIT_VALUE -1
#endif
#endif
#endif

3) Or maybe moving it and define a APR_LDAP_DEFAULT_SIZELIMIT instead of
keeping it in util_ldap.c

4) Or some complicated(?) conf magic that would involve getting a handle and
then calling ldap_set_option(ldap, LDAP_OPT_SIZELIMIT, -1);  and setting
APR_LDAP_DEFAULT_SIZELIMIT to -1 or 0 accordingly.


On 2/23/07, Brad Nicholes <[EMAIL PROTECTED]> wrote:

What LDAP client SDK does z/OS use? (Novell, OpenLDAP, Netscape, Other???)

Brad

>>> On 2/22/2007 at 12:52 PM, in message
<[EMAIL PROTECTED]>, "David
Jones"
<[EMAIL PROTECTED]> wrote:
> Its the z/OS, has LDAP_NO_SIZELIMIT defined. Does not have nor support
> LDAP_DEFAULT_SIZELIMIT
>
> On 2/22/07, Brad Nicholes <[EMAIL PROTECTED]> wrote:
>>
>> >>> On 2/22/2007 at 7:12 AM, in message
>> <[EMAIL PROTECTED]>, "David
>> Jones"
>> <[EMAIL PROTECTED]> wrote:
>> > How about something alone these lines? It assumes there is nobody
with
>> > LDAP_DEFAULT_LIMIT undefined AND LDAP_NO_LIMIT defined, but still
>> supports
>> > and wishes to use the -1 value.
>> >
>> > --- util_ldap.c.defaultlimit    Wed Feb 21 16:08:51 2007
>> > +++ util_ldap.c.nolimit Thu Feb 15 12:50:09 2007
>> > @@ -52,15 +52,9 @@
>> >  #define LDAP_CA_TYPE_BASE64             2
>> >  #define LDAP_CA_TYPE_CERT7_DB           3
>> >
>> > -#ifdef LDAP_DEFAULT_LIMIT
>> > -#define LDAP_LIMIT_VALUE LDAP_DEFAULT_LIMIT
>> > -#else
>> > -#ifndef LDAP_NO_LIMIT  /* Have neither LDAP_DEFAULT_LIMIT or
>> LDAP_NO_LIMIT
>> > */
>> > -#define LDAP_LIMIT_VALUE  -1
>> > -#else                  /* Have LDAP_NO_LIMIT, but not
>> LDAP_DEFAULT_LIMIT */
>> > -#define LDAP_LIMIT_VALUE LDAP_NO_LIMIT
>> > -#endif                 /* !LDAP_NO_LIMIT */
>> > -#endif                 /* LDAP_DEFAULT_LIMIT */
>> > +#ifndef LDAP_NO_LIMIT
>> > +#define LDAP_NO_LIMIT -1
>> > +#endif
>> >
>> >  module AP_MODULE_DECLARE_DATA ldap_module;
>> >
>> > @@ -680,7 +674,7 @@
>> >      /* search for reqdn */
>> >      if ((result = ldap_search_ext_s(ldc->ldap, (char *)reqdn,
>> > LDAP_SCOPE_BASE,
>> >                                      "(objectclass=*)", NULL, 1,
>> > -                                    NULL, NULL, NULL,
LDAP_LIMIT_VALUE,
>> > &res))
>> > +                                    NULL, NULL, NULL, LDAP_NO_LIMIT,
>> &res))
>> >              == LDAP_SERVER_DOWN)
>> >      {
>> >          ldc->reason = "DN Comparison ldap_search_ext_s() "
>> > @@ -958,7 +952,7 @@
>> >      if ((result = ldap_search_ext_s(ldc->ldap,
>> >                                      (char *)basedn, scope,
>> >                                      (char *)filter, attrs, 0,
>> > -                                    NULL, NULL, NULL,
LDAP_LIMIT_VALUE,
>> > &res))
>> > +                                    NULL, NULL, NULL, LDAP_NO_LIMIT,
>> &res))
>> >              == LDAP_SERVER_DOWN)
>> >      {
>> >          ldc->reason = "ldap_search_ext_s() for user failed with
server
>> > down";
>> > @@ -1198,7 +1192,7 @@
>> >      if ((result = ldap_search_ext_s(ldc->ldap,
>> >                                      (char *)basedn, scope,
>> >                                      (char *)filter, attrs, 0,
>> > -                                    NULL, NULL, NULL,
LDAP_LIMIT_VALUE,
>> > &res))
>> > +                                    NULL, NULL, NULL, LDAP_NO_LIMIT,
>> &res))
>> >              == LDAP_SERVER_DOWN)
>> >      {
>> >          ldc->reason = "ldap_search_ext_s() for user failed with
server
>> > down";
>> >
>>
>> Maybe I missed this before, but what platform or LDAP SDK does this
fail
>> on?  The Novell LDAP SDK obviously supports LDAP_DEFAULT_SIZELIMIT (-1)
and
>> according to the OpenLDAP source code, it also supports the same
>> functionality if the value of sizelimit is -1 even though it does not
>> specifically define LDAP_DEFAULT_SIZELIMIT.  I don't know what the
Netscape
>> or Microsoft SDKs support other than the fact that we have been passing
>> those SDKs the same -1 value without a problem.  I believe that the
only
>> reason why we see the hardcoded -1 rather than a #define is simply
because
>> not all of the SDKs provide a #define yet they all seems to support the
>> functionality.  We just need to validate that theory.
>>
>> Brad
>>
>



Reply via email to