*) core: Avoid a possible truncation of the faulty header included in the
HTML response when LimitRequestFieldSize is reached. [Yann Ylavic]
+ *) mod_ldap: In some case, LDAP_NO_SUCH_ATTRIBUTE could be returned instead
+ of an error during a compare operation. [Eric Covener]
+
Changes with Apache 2.4.15
*) mod_ext_filter, mod_charset_lite: Avoid inadvertent filtering of protocol
PATCHES ACCEPTED TO BACKPORT FROM TRUNK:
[ start all new proposals below, under PATCHES PROPOSED. ]
- *) mod_ldap: Fix unexpected return codes from LDAP lib being coerced
- into LDAP_NO_SUCH_ATTRIBUTE + some new tracing.
-
- trunk patch: http://svn.apache.org/r1687980
- http://svn.apache.org/r1689694
- http://svn.apache.org/r1689698
- 2.4.x patch: http://people.apache.org/~covener/patches/httpd-2.4.x-ldap-retcode.diff
- +1: covener, wrowe, ylavic
PATCHES PROPOSED TO BACKPORT FROM TRUNK:
[ New proposals should be added at the end of the list ]
ldc->reason = "Comparison no such attribute (cached)";
}
else {
- ldc->reason = "Comparison undefined (cached)";
+ ldc->reason = apr_psprintf(r->pool,
+ "Comparison undefined: (%d): %s (adding to cache)",
+ result, ldap_err2string(result));
}
/* record the result code to return with the reason... */
result = compare_nodep->result;
/* and unlock this read lock */
LDAP_CACHE_UNLOCK();
+
+ ap_log_rerror(APLOG_MARK, APLOG_TRACE5, 0, r,
+ "ldap_compare_s(%pp, %s, %s, %s) = %s (cached)",
+ ldc->ldap, dn, attrib, value, ldap_err2string(result));
return result;
}
}
}
LDAP_CACHE_UNLOCK();
}
+
if (LDAP_COMPARE_TRUE == result) {
ldc->reason = "Comparison true (adding to cache)";
- return LDAP_COMPARE_TRUE;
}
else if (LDAP_COMPARE_FALSE == result) {
ldc->reason = "Comparison false (adding to cache)";
- return LDAP_COMPARE_FALSE;
}
- else {
+ else if (LDAP_NO_SUCH_ATTRIBUTE == result) {
ldc->reason = "Comparison no such attribute (adding to cache)";
- return LDAP_NO_SUCH_ATTRIBUTE;
+ }
+ else {
+ ldc->reason = apr_psprintf(r->pool,
+ "Comparison undefined: (%d): %s (adding to cache)",
+ result, ldap_err2string(result));
}
}
+
+ ap_log_rerror(APLOG_MARK, APLOG_TRACE5, 0, r,
+ "ldap_compare_s(%pp, %s, %s, %s) = %s",
+ ldc->ldap, dn, attrib, value, ldap_err2string(result));
return result;
}