I am using ldap_search_ext_s with an attrs parameter that looks
something like this:
const char* attrs[] = { "cn", "statusCode", NULL };

Previously, I did not have the const qualifier on there, but I increased
the warning level of my compiler, and it was (correctly) complaining
that I was treating string constants as non-constant.

Unfortunately, the ldap_search_ext_s function is declared *without* the
const qualifier:

LDAP_F( int )
ldap_search_ext_s LDAP_P((
        LDAP                    *ld,
        LDAP_CONST char *base,
        int                             scope,
        LDAP_CONST char *filter,
        char                    **attrs,         <------ here
        int                             attrsonly,
        LDAPControl             **serverctrls,
        LDAPControl             **clientctrls,
        struct timeval  *timeout,
        int                             sizelimit,
        LDAPMessage             **res ));

Does this mean that I really do need to pass in mutable buffers, or is
the API incorrect?  If it needs to be mutable, under what conditions
will those be changed, and do I need to re-initialize the values after
every call?
I notice that other ldap libraries (e.g. IBM's Tivoli Directory Server)
*do* use const for that parameter.

eric

Reply via email to