On Mon, Feb 06, 2006 at 02:53:48PM -0600, Stephen Stocker wrote:
> Oops, I sent this without a subject. :(
>
>
> On Fri Oct 28 13:17:51 MDT 2005 adair at gotadsl.co.uk wrote:
>
> > Is anyone else having problems with Cache-Control: no-cache ?
> > I can't seem to get it to work correctly. I've found the fiendish
> >
> > document.cache.ignore_cache_control [0|1] (default: 1)
> > Ignore Cache-Control and Pragma server headers. When set, the
> > document is cached even with 'Cache-Control: no-cache'.
> >
> > setting and set it to 0 but I still can't get my forms to redisplay with
> > data reselected from the database. Apache has set everything i.e.
> >
> > <Directory /srv/www/htdocs>
> > Header append Author "Bill Adair"
> > Header append Expires "Thu, 01 Dec 2003 16:00:00 GMT"
> > Header append Cache-Control "no-store, no-cache, must-revalidate"
> > </Directory>
> >
> > but no joy yet. The headers show up in the view headers option (I
> > assume this is at page level but have 'f'ed my frame to full screen)
> > but the frame is still cached. I can't even delete the cache contents
> > using 'C' or flush all caches as elinks claims the cache item is "in
> >use".
> > TIA
> > Bill
>
> Yes. <F10> "c" (flush all caches) has been broken since my October 28,
> 2005 CVS update. This was probably actually a somewhat earlier version, as I
> wasn't aware of the change to GIT.
>
> Anyway, I'm still using that version (probably the last thing in Elinks
> CVS), as anything newer has been virtually unusable on several sites,
> notably Yahoo groups.
Try this patch (in attachment).
I guess the problem is in get_validated_cache_entry.
When the cached is in use always the cached is returned.
I'm not sure if the patch is correct.
Witold Filipczyk
--- elinks/src/cache/cache.c 2006-01-10 20:49:01.831957000 +0100
+++ elinks.2/src/cache/cache.c 2006-03-19 21:17:40.544416750 +0100
@@ -187,16 +187,16 @@
* reloading when spawning a new tab which could potentially be a big
* penalty but shouldn't that be taken care of on a higher level?
* --jonas */
- if (is_object_used(cached)) {
#if 0
+ if (is_object_used(cached)) {
+
/* Never use expired entries. */
/* Disabled because it hurts usability too much. */
if (cached->expire && cache_entry_has_expired(cached))
return NULL;
-#endif
return cached;
}
-
+#endif
/* A bit of a gray zone. Delete the entry if the it has the stricktest
* cache mode and we don't want the most aggressive mode or we have to
* remove the redirect or the entry expired. Please enlighten me.
@@ -204,7 +204,7 @@
if ((cached->cache_mode == CACHE_MODE_NEVER && cache_mode !=
CACHE_MODE_ALWAYS)
|| (cached->redirect &&
!get_opt_bool("document.cache.cache_redirects"))
|| (cached->expire && cache_entry_has_expired(cached))) {
- delete_cache_entry(cached);
+ if (!is_object_used(cached)) delete_cache_entry(cached);
return NULL;
}
_______________________________________________
elinks-dev mailing list
[email protected]
http://linuxfromscratch.org/mailman/listinfo/elinks-dev