[prev in list] [next in list] [prev in thread] [next in thread] 

List:       konq-bugs
Subject:    Bug#39711: kio-http ignores HTTP cache control commands
From:       Andrew Kohlsmith <akohlsmith () benshaw ! com>
Date:       2002-03-24 4:50:55
[Download RAW message or body]

> In Loader::slotFinished( KIO::Job* job ), job->queryMetaData("no-cache")
> should tell you when you may not cache and I think that in case you may not
> cache you should mark  r->object() as "uncachable" somehow (See also
> CachedObject::finish) and probably force a call to Cache::flush()

Did that (I've been playing with this since you emailled me) and by the debug 
logs I have generated it is seeing the object set to uncacheable but still 
caching it.  I've tried setting expireTime, playing with metadata...  
flushing too...  

in Loader::slotFinished():
      emit requestFailed( r->m_docLoader, r->object );
  }
  else
  {
+ if(job->queryMetaData("no-cache") == "true")
+   {
+   kdDebug(6060) << "(ABK): " << __DATE__ << "," << __TIME__ << " I see that 
+the object should not be cached..." << endl;
+   job->addMetaData("cache", "reload");
+   r->object->setStatus(CachedObject::Uncacheable);
+   }

and then in CachedImage::finish():
void CachedObject::finish()
{
-    if( m_size > MAXCACHEABLE)
+    if( m_size > MAXCACHEABLE || m_status == Uncacheable)
    {
+kdDebug(6060) << "CachedObject::finish() (ABK) - m_status set to Uncacheable" 
<< endl;

the latest debug output:

kparts: WARNING: Part '' has a widget view widget with a focus policy of 
NoFocus. It should have at least a ClickFocus policy, for part activation to 
work well.
khtml (cache): Cache: new: http://doodle.gate-way.net/index.pl
khtml (cache): starting Loader url=http://doodle.gate-way.net/index.pl
khtml (cache): Cache: flush()
khtml (cache): Cache: loading in progress: http://doodle.gate-way.net/index.pl
khtml (cache): 0x83899f8 CachedImage::ref(0x8300c20) 
khtml (cache): 0x83899f8in CachedImage::data(buffersize 701, eof=false
khtml (cache): 0x83899f8in CachedImage::data(buffersize 3923, eof=false
khtml (cache): 0x83899f8in CachedImage::data(buffersize 4939, eof=false
khtml (cache): 0x83899f8in CachedImage::data(buffersize 8019, eof=false
khtml (cache): 0x83899f8in CachedImage::data(buffersize 8268, eof=false
movie updated 0/0/494/243, pixmap size 495/244
khtml (cache): found a client to update: 0x8300c20
movieStatus(2)
khtml (cache): found a client to update: 0x8300c20
movieStatus(2)
khtml (cache): found a client to update: 0x8300c20
khtml (cache): 0x83899f8in CachedImage::data(buffersize 8268, eof=false
khtml (cache): Loader::slotFinished(): (ABK): Mar 23 2002,23:41:46 I see that 
the object should not be cached...
khtml (cache): 0x83899f8in CachedImage::data(buffersize 8268, eof=true
khtml (cache): CachedObject::finish() (ABK) - m_status set to Uncacheable
khtml (cache):  No expire date for image http://doodle.gate-way.net/index.pl
khtml (cache): Loader:: JOB FINISHED 0x8389a20: 
http://doodle.gate-way.net/index.pl

As you can see, it is seeing the header and even (now) acting on it, but the 
image persists; I wonder if I have to set a deleted flag...

Regards,
Andrew
_______________________________________________
Konq-bugs mailing list
Konq-bugs@mail.kde.org
http://mail.kde.org/mailman/listinfo/konq-bugs
[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic