/* $OpenLDAP$ */
/*
- * Copyright 1998-1999 The OpenLDAP Foundation, All Rights Reserved.
+ * Copyright 1998-2000 The OpenLDAP Foundation, All Rights Reserved.
* COPYING RESTRICTIONS APPLY, see COPYRIGHT file
*/
const struct ldapoptions *lo;
if( ldap_int_global_options.ldo_valid != LDAP_INITIALIZED ) {
- ldap_int_initialize();
+ ldap_int_initialize(NULL);
}
if(ld == NULL) {
return LDAP_OPT_SUCCESS;
case LDAP_OPT_PROTOCOL_VERSION:
- if ((ld != NULL) && ld->ld_version) {
- * (int *) outvalue = ld->ld_version;
- } else {
- * (int *) outvalue = lo->ldo_version;
- }
+ * (int *) outvalue = lo->ldo_version;
return LDAP_OPT_SUCCESS;
case LDAP_OPT_SERVER_CONTROLS:
#ifdef HAVE_TLS
if ( ldap_pvt_tls_get_option((struct ldapoptions *)lo, option, outvalue ) == 0 )
return LDAP_OPT_SUCCESS;
+#endif
+#ifdef HAVE_CYRUS_SASL
+ if ( ldap_pvt_sasl_get_option(ld, option, outvalue ) == 0 )
+ return LDAP_OPT_SUCCESS;
#endif
/* bad param */
break;
LDAP_CONST void *invalue)
{
struct ldapoptions *lo;
+ int *dbglvl = NULL;
+
+ /*
+ * The architecture to turn on debugging has a chicken and egg
+ * problem. Thus, we introduce a fix here.
+ */
+
+ if (option == LDAP_OPT_DEBUG_LEVEL)
+ dbglvl = (int *) invalue;
if( ldap_int_global_options.ldo_valid != LDAP_INITIALIZED ) {
- ldap_int_initialize();
+ ldap_int_initialize(dbglvl);
}
if(ld == NULL) {
default:
#ifdef HAVE_TLS
if ( ldap_pvt_tls_set_option( lo, option, (void *)invalue ) == 0 )
- return LDAP_OPT_SUCCESS;
+ return LDAP_OPT_SUCCESS;
+#endif
+#ifdef HAVE_CYRUS_SASL
+ if ( ldap_pvt_sasl_set_option( ld, option, (void *)invalue ) == 0 )
+ return LDAP_OPT_SUCCESS;
#endif
/* bad param */
break;