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

List:       kfm-devel
Subject:    Re: a "bad" kioslave will crash konqy
From:       Simon Hausmann <tronical () gmx ! net>
Date:       1999-06-19 13:41:44
[Download RAW message or body]

On Sat, 19 Jun 1999, Alex Zepeda wrote:

> On Fri, 18 Jun 1999, Simon Hausmann wrote:
> 
> > Hm, let's see: The first time a KIOSlave is started in Konqueror, when
> > opening an URL, is in KRun in libkio, for non-local urls (as it is the
> > case of the pop protocol) .
> > => Does a plain simple example application using KRun crash when using a
> > "bad" ioslave? (I can't test it now, that's why I'm asking :)
> 
> I didn't actually test this, but I did a little bit of experimenting, and
> found that for whatever reason, konqy crashes when I don't call ::mimeType
> explicitly.  A little bit further exploring lead to the conclusion that a
> mimetype of message/rfc822 crashes konqy.  I'm not quite sure why, but I
> know this mimetype is only defined in the "magic" file....
> 
> The mind boggles.  Do I have outdated files?

Hmmm, I'm not 100% sure, but from what I saw from the pop3/krun sources,
the following procedure takes place when using your header command of
pop3slave in Konqy:
After testDir() and isFile(), KRun tries to preGet() the URL, in order to
either use KMimeMagic or to look for a sigMimeType() signal. According to
the pop3 source, the mimetype signal gets emitted before first data is
sent (for preget -> mimemagic) . This fires up KRun::slotMimeType which
itself calls KRun::foundMimeType. This function is re-implemented by
Konqueror, but it will surely return to the original method since Konqy
will not find a way to display it itself (can't display this mimetype) .
foundMimeType() will call KRun::runURL(), which will ask the trader of any
offers of this mimetype(servicetype) . KTrader will return zero offers and
runURL will "return false" , thus leading to an emitted error() signal
(uncatched in Konqueror....hm, this should be fixed!) . Then comes the
part that gives me headaches in somehow:
KRun will deletes itself....
But what happens with the signal caller (the iojob) ? Will pop3slave
continue sending data() signals into the nirvana?

...or did I mix up things... ?

Ciao,
  Simon

--
Simon Hausmann       <hausmann@kde.org>
http://www.kde.org/  <tronical@gmx.net>

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

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