don't cache queries that would not be answered correctly because of schema issues (ITS#5680)

This commit is contained in:
Pierangelo Masarati 2008-09-04 00:05:26 +00:00
parent 21f7e756e3
commit f01e184377

View File

@ -1961,6 +1961,14 @@ pcache_op_cleanup( Operation *op, SlapReply *rs ) {
* limit, empty the chain and ignore the rest. * limit, empty the chain and ignore the rest.
*/ */
if ( !si->over ) { if ( !si->over ) {
/* check if the entry contains undefined
* attributes/objectClasses (ITS#5680) */
if ( test_filter( op, rs->sr_entry, si->query.filter ) != LDAP_COMPARE_TRUE ) {
Debug( pcache_debug, "%s: query not cacheable because of schema issues in DN \"%s\"\n",
op->o_log_prefix, rs->sr_entry->e_name.bv_val, 0 );
goto over;
}
if ( si->count < si->max ) { if ( si->count < si->max ) {
si->count++; si->count++;
e = entry_dup( rs->sr_entry ); e = entry_dup( rs->sr_entry );
@ -1969,6 +1977,7 @@ pcache_op_cleanup( Operation *op, SlapReply *rs ) {
si->tail = e; si->tail = e;
} else { } else {
over:;
si->over = 1; si->over = 1;
si->count = 0; si->count = 0;
for (;si->head; si->head=e) { for (;si->head; si->head=e) {