in store.c:
void
storeSetPublicKey(StoreEntry * e)
{
......
/*
* We can't make RELEASE_REQUEST objects public......
* If RELEASE_REQUEST is set, then ENTRY_CACHABLE should not
* be set, and storeSetPublicKey() should not be called.
*/
assert(!EBIT_TEST(e->flags, RELEASE_REQUEST));
newkey = storeKeyPublic(mem->url, mem->method);
if ((e2 = (StoreEntry *) hash_lookup(store_table, newkey))) {
debug(20, 3) ("storeSetPublicKey: Making old '%s' private.\n", mem->url$
storeSetPrivateKey(e2);
/* here it is*/
storeRelease(e2);
newkey = storeKeyPublic(mem->url, mem->method);
}
If I comment the lines between {}, the object is not removed.
storeRelease() is after htppCachableReply, so if I want to
prevent RELEASE_REQUEST
flag from being set I have to make it earlier.
Unless it is OK to kill this check "We can't make RELEASE_REQUEST objects
public".
Thanks for the reply.
Krasi Zlatev
032/ 944 138
Network Administration
EWeb
Enjoy!
On Mon, 11 Jun 2001, Henrik Nordstrom wrote:
> Krasi Zlatev wrote:
> >
> > > If you have RELEASE_REQUEST then you are already too late. It has been
> > > decided that the object should be removed from the cache. From this
> > > there is no point of return.
> >
> > So as I understand I have to prevent release request flag being set for
> > that object.And from your words I seem to be too late doing that in
> > httpCachableReply.
>
> It should not be too late there, but if RELEASE_REQUEST is already set
> on the object then it is.
>
> Start by figuring out why the object got released (storeRelease() was
> called).
>
> --
> Henrik Nordstrom
> Squid Hacker
>
Received on Mon Jun 11 2001 - 00:20:07 MDT
This archive was generated by hypermail pre-2.1.9 : Tue Dec 09 2003 - 16:14:03 MST