[Kde-pim] Proposal for a solution for bug 77862

Guy Maurel guy-kde at maurel.de
Sat May 15 11:14:27 BST 2010


Hi!

Thanks for writting, I know you have much more trouble to day with the 
time delay...
On Friday 14 May 2010 22:53:53 Thomas McGuire wrote:
> Hi,

> Oh, I see, this explains why closing the connection does not work, as the IO 
NO! It is NOT the explanation!

> slave probably is waiting somewhere, so the commands get not dispatched.
NO! The slave is waiting... but it never got anything, because the command bevor
was not sent. It was not sent because the IP has changed! 

> However, all the waitForReadyRead have a timeout parameter. Is that timeout to 
> high? We might just be enable to lower it.
The timeout value is set by default. To change it, look at the well written comment
  https://bugs.kde.org/show_bug.cgi?id=77862#c48

> 
> > **WHY** do we need this "if (getState() == ISTATE_NO)" ?
> 
> The documentation says ISTATE_NO stands for "Not connected", so if it is not 
> connected, we don't need to disconnect. Are you sure the slave is actually 
> connected at that point?
Yes. One have got data from the server, short before, and I found nobody 
who makes a disconnect.
Many of the call to getState() in the imap4.cpp are preceded by a setting of
the state to ISTATE_CONNECT, E.g. line 683:
  setState(ISTATE_CONNECT);
It looks like to make sure it is possible to go through. 
And, there is NO possibility to send anything (from kmail) to use the setSate.
The only one is from imap4.cpp itself. There I ask again: Why do we need this "if" ?

> I'd rather find out why the timeout is not working. 
the timeout is pretty working, after a long time...

> Looks like there might be 
> some defect, and usually it is better to fix the defect (the root cause) 
> instead on working around that.
> As the last resort, killing the slave is an option of course :)
yes, it is.

Let me introduce another point.
There is not any "button" in kmail for the user, if he/she wants to disconnect from
the server. And if we add such a "button", we have to resolve the same problem:
 why do we need this "if (getState() == ISTATE_NO)" ?

This is the problem we have to solve first at this place.

(It is pretty nice to discuss about this problem with you!)
guy
_______________________________________________
KDE PIM mailing list kde-pim at kde.org
https://mail.kde.org/mailman/listinfo/kde-pim
KDE PIM home page at http://pim.kde.org/



More information about the kde-pim mailing list