-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 tag 398657 + patch thanks
Here a patch which adds a callback for the sasl context to get the path of the sasl configuration file. It also looks in the old path (/usr/lib/sasl2) I think applying this for Etch doesn't harm. See for more information: http://www.openldap.org/lists/openldap-bugs/200309/msg00071.html Regards, Matthijs Mohlmann -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.6 (GNU/Linux) Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org iD8DBQFFetWF2n1ROIkXqbARAvFjAJ9tQzd9QZA4l6nrqserpMzuzCWKawCgmsiJ e0eJkh9RyI9gw6JoQFM4kRw= =gm3R -----END PGP SIGNATURE-----
Index: include/ldap_defaults.h =================================================================== --- include/ldap_defaults.h.orig +++ include/ldap_defaults.h @@ -65,4 +65,6 @@ /* dn of the default "monitor" subentry */ #define SLAPD_MONITOR_DN "cn=Monitor" +#define SASL_CONFIGPATH LDAP_SYSCONFDIR LDAP_DIRSEP "sasl" + #endif /* _LDAP_CONFIG_H */ Index: servers/slapd/sasl.c =================================================================== --- servers/slapd/sasl.c.orig +++ servers/slapd/sasl.c @@ -951,12 +951,38 @@ #endif /* HAVE_CYRUS_SASL */ +static int +slap_sasl_getpath( void * context, char ** path ) +{ + char * sasl_default_configpath; + size_t len; + +#if SASL_VERSION_MAJOR >= 2 + sasl_default_configpath = "/usr/lib/sasl2"; +#else + sasl_default_configpath = "/usr/lib/sasl"; +#endif + + len = strlen(SASL_CONFIGPATH) + 1 /* colon */ + + strlen(sasl_default_configpath) + 1 /* \0 */; + *path = malloc( len ); + if ( *path == NULL ) + return SASL_FAIL; + + if (snprintf( *path, len, "%s:%s", SASL_CONFIGPATH, + sasl_default_configpath ) != len-1 ) + return SASL_FAIL; + + return SASL_OK; +} + int slap_sasl_init( void ) { #ifdef HAVE_CYRUS_SASL int rc; static sasl_callback_t server_callbacks[] = { { SASL_CB_LOG, &slap_sasl_log, NULL }, + { SASL_CB_GETPATH, &slap_sasl_getpath, NULL }, { SASL_CB_LIST_END, NULL, NULL } };