diff options
Diffstat (limited to 'recipes-support/openldap/openldap-2.4.39/sasl-default-path.patch')
| -rw-r--r-- | recipes-support/openldap/openldap-2.4.39/sasl-default-path.patch | 55 |
1 files changed, 55 insertions, 0 deletions
diff --git a/recipes-support/openldap/openldap-2.4.39/sasl-default-path.patch b/recipes-support/openldap/openldap-2.4.39/sasl-default-path.patch new file mode 100644 index 0000000..5ea240f --- /dev/null +++ b/recipes-support/openldap/openldap-2.4.39/sasl-default-path.patch | |||
| @@ -0,0 +1,55 @@ | |||
| 1 | Add /etc/ldap/sasl2 to the SASL configuration search path. | ||
| 2 | |||
| 3 | Not submitted upstream. Somewhat Debian-specific and probably not of | ||
| 4 | interest upstream. | ||
| 5 | |||
| 6 | --- a/include/ldap_defaults.h | ||
| 7 | +++ b/include/ldap_defaults.h | ||
| 8 | @@ -63,4 +63,6 @@ | ||
| 9 | /* dn of the default "monitor" subentry */ | ||
| 10 | #define SLAPD_MONITOR_DN "cn=Monitor" | ||
| 11 | |||
| 12 | +#define SASL_CONFIGPATH LDAP_SYSCONFDIR LDAP_DIRSEP "sasl2" | ||
| 13 | + | ||
| 14 | #endif /* _LDAP_CONFIG_H */ | ||
| 15 | --- a/servers/slapd/sasl.c | ||
| 16 | +++ b/servers/slapd/sasl.c | ||
| 17 | @@ -1103,12 +1103,38 @@ static const rewrite_mapper slapd_mapper | ||
| 18 | }; | ||
| 19 | #endif | ||
| 20 | |||
| 21 | +static int | ||
| 22 | +slap_sasl_getconfpath( void * context, char ** path ) | ||
| 23 | +{ | ||
| 24 | + char * sasl_default_configpath; | ||
| 25 | + size_t len; | ||
| 26 | + | ||
| 27 | +#if SASL_VERSION_MAJOR >= 2 | ||
| 28 | + sasl_default_configpath = "/usr/lib/sasl2"; | ||
| 29 | +#else | ||
| 30 | + sasl_default_configpath = "/usr/lib/sasl"; | ||
| 31 | +#endif | ||
| 32 | + | ||
| 33 | + len = strlen(SASL_CONFIGPATH) + 1 /* colon */ + | ||
| 34 | + strlen(sasl_default_configpath) + 1 /* \0 */; | ||
| 35 | + *path = malloc( len ); | ||
| 36 | + if ( *path == NULL ) | ||
| 37 | + return SASL_FAIL; | ||
| 38 | + | ||
| 39 | + if (snprintf( *path, len, "%s:%s", SASL_CONFIGPATH, | ||
| 40 | + sasl_default_configpath ) != len-1 ) | ||
| 41 | + return SASL_FAIL; | ||
| 42 | + | ||
| 43 | + return SASL_OK; | ||
| 44 | +} | ||
| 45 | + | ||
| 46 | int slap_sasl_init( void ) | ||
| 47 | { | ||
| 48 | #ifdef HAVE_CYRUS_SASL | ||
| 49 | int rc; | ||
| 50 | static sasl_callback_t server_callbacks[] = { | ||
| 51 | { SASL_CB_LOG, &slap_sasl_log, NULL }, | ||
| 52 | + { SASL_CB_GETCONFPATH, &slap_sasl_getconfpath, NULL }, | ||
| 53 | { SASL_CB_GETOPT, &slap_sasl_getopt, NULL }, | ||
| 54 | { SASL_CB_LIST_END, NULL, NULL } | ||
| 55 | }; | ||
