There's a problem with inconsistent function declarations in the CLDAP
client code.
The include files prototype functions like this:
LDAP_F ( int ) ldap_search_ext ( ... );
But the source code usually declares functions like this, without the
LDAP_F:
int ldap_search_ext (...)
{ ... }
LDAP_F is a macro in ldap_cdefs.h which gives the developer some control
over the calling convention.
By leaving out the LDAP_F in the function declaration, it's making an
assumption about the compiler defaults. In MSVC6, the default compiler
options cause compilation errors in our build environment.
For various reasons, we can't just change the compiler option. To
build the library as a DLL, we've had to modify all the source code to declare
it consistently (1000's of places!). Makes synching with OpenLDAP very
painful. Same situation for LDAP_LDIF_F, LDAP_LUTIL_F, etc.
I'd like to propose modifying the source code to declare functions
consistently.
Functions that are exported MUST have the LDAP_F declaration.
For purely internal private functions, I don't care whether it
contains LDAP_F or not, as long as it matches.
I'd be willing to do the work (he who whines... :)
Does anyone have reasons this should not be done?
Is it going to cause anyone problems?
—-------------
Dave Steck
Novell, Inc., the leading provider of Net services
software
|