Update of /repo/OpenLDAP/pkg/ldap/servers/slapd/overlays
Modified Files: pcache.c 1.168 -> 1.169
Log Message: Partially revert 1.32; pcache must allow other callbacks to see its results
Regarding the original reason for this change...
It's clear that what we really want is for pcache to behave the same in the cached vs uncached case, wrt other overlays/callbacks. So wherever pcache takes control in the call stack for the uncached case, it should do the same in the cached case.
What's not clear is how to do that in general. When "response-callback head" has been configured, it should just execute and leave the callback stack intact when answering from cache. When "tail" (the default) is in effect then it probably should bypass the stack. The above commit just leaves the stack intact; I'll fix it up now to depend on the response-callback setting.
* To: OpenLDAP Commit <openldap-commit2devel@OpenLDAP.org> * Subject: Re: commit: ldap/servers/slapd/overlays pcache.c * From: Pierangelo Masarati <firstname.lastname@example.org> * Date: Tue, 24 Aug 2004 10:40:00 +0200
Update of /repo/OpenLDAP/pkg/ldap/servers/slapd/overlays Modified Files: pcache.c 1.31 -> 1.32 Log Message: - proxy cache erroneously returns the filtering attributes and the objectClass right after caching, even if not requested, while subsequent searches are fine;
I think this is a bug; it was also reflected in the test data, which has been fixed accordingly
- the response callback needs be apended at the end of the callback list, otherwise the resulting entries are cached
I ran into this issue while developing an overlay that dynamically builds entries; the raw entry was being cached instead of the completed one, because pcache adds its callback only when required, while that of my overlay is stacked by the overlay infrastructure. I think the "natural" behavior of pcache is to cache the final result that is sent to the user. I guess there might be applications where this is not true, so I made the original behavior configurable by an (undocumented) directive.