Stripped LDAPObject.c

Michael Ströder michael at stroeder.com
Sat Dec 22 15:01:38 CET 2001


David Leonard wrote:
> 
> i note you left in simple_bind_s() probably because from my reading of
> the openldap source code, it shows that some complicated things happen at
> the end of it that don't happen in simple_bind() ... i had a quick
> skim and couldn't see the others doing much more ...

I glanced over ldap_simple_bind_s() of
openldap-HEAD/ldap/libraries/libldap/sbind.c. It just looks like a
simple wrapper around ldap_sasl_bind_s() (see below). Hmm, we could
do the same in ldapobject.c once ldap_sasl_bind() is wrapped.

I'm also very much in favour of looking into how to use OpenLDAP 2's
libldap_r to check if we could build a thread-safe python-ldap C
wrapper. A global thread lock is sometimes annoying (e.g. if
ldap.open()/initialize() takes very long). Anyone willing to do
this? Another advantage of a very short LDAPObject.c is that these
kind of jobs get easier.

Ciao, Michael.

-------------------------------- snip
--------------------------------
int
ldap_simple_bind_s( LDAP *ld, LDAP_CONST char *dn, LDAP_CONST char
*passwd )
{
	struct berval cred;

	Debug( LDAP_DEBUG_TRACE, "ldap_simple_bind_s\n", 0, 0, 0 );

	if ( passwd != NULL ) {
		cred.bv_val = (char *) passwd;
		cred.bv_len = strlen( passwd );
	} else {
		cred.bv_val = "";
		cred.bv_len = 0;
	}

	return ldap_sasl_bind_s( ld, dn, LDAP_SASL_SIMPLE, &cred,
		NULL, NULL, NULL );
}
-------------------------------- snip
--------------------------------




More information about the python-ldap mailing list