http://svn.apache.org/viewcvs.cgi?rev=209539&view=rev
+1: pquerna
- *) mod_ldap: Initialize mutex permissions properly so that
- locking actually works.
- http://svn.apache.org/viewcvs?rev=105412&view=rev
- rediff for 2.0.x: http://people.apache.org/~jorton/ap_ldapmutex20.diff
- +1: jorton, minfrin, wrowe
- wrowe asks: where is AP_NEED_SET_MUTEX_PERMS when you need it?
-
PATCHES TO BACKPORT THAT ARE ON HOLD OR NOT GOING ANYWHERE SOON:
*) Remove LDAP toolkit specific code from util_ldap and mod_auth_ldap.
#ifndef APU_HAS_LDAP
#error mod_ldap requires APR-util to have LDAP support built in
+#endif
+
+#if !defined(OS2) && !defined(WIN32) && !defined(BEOS) && !defined(NETWARE)
+#include "unixd.h"
+#define UTIL_LDAP_SET_MUTEX_PERMS
#endif
/* defines for certificate file types
return result;
}
+#ifdef UTIL_LDAP_SET_MUTEX_PERMS
+ result = unixd_set_global_mutex_perms(st->util_ldap_cache_lock);
+ if (result != APR_SUCCESS) {
+ ap_log_error(APLOG_MARK, APLOG_CRIT, result, s,
+ "LDAP cache: failed to set mutex permissions");
+ return result;
+ }
+#endif
+
/* merge config in all vhost */
s_vhost = s->next;
while (s_vhost) {
static void util_ldap_child_init(apr_pool_t *p, server_rec *s)
{
apr_status_t sts;
- util_ldap_state_t *st =
- (util_ldap_state_t *)ap_get_module_config(s->module_config, &ldap_module);
+ util_ldap_state_t *st = ap_get_module_config(s->module_config, &ldap_module);
+
+ if (!st->util_ldap_cache_lock) return;
sts = apr_global_mutex_child_init(&st->util_ldap_cache_lock, st->lock_file, p);
if (sts != APR_SUCCESS) {