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

List:       kmail-devel
Subject:    Re: KMail blocks just before checking POP3 mailboxes
From:       Martijn Klingens <klingens () kde ! org>
Date:       2004-05-31 16:16:36
Message-ID: 200405311816.37243.klingens () kde ! org
[Download RAW message or body]

On Monday 31 May 2004 17:57, Ingo Klöcker wrote:
> When I last looked at the code (not too long ago) then that's exactly
> what should already happen. But maybe it only works this way for people
> who actually leave messages on the server.

Probably. Take a look at this beauty:

-----
martijn:~/src/kde-head/kdepim/kmail> cvs log -r1.130 kmacctexppop.cpp
revision 1.130
date: 2003/03/11 13:14:09;  author: sanders;  state: Exp;  lines: +5 -2
An attempt to prevent duplicate downloading of mails that are left on the
server. Chance of success slim, but it's been working for 3 days here.

martijn:~/src/kde-head/kdepim/kmail> cvs di -r1.129 -r1.130 kmacctexppop.cpp
Index: kmacctexppop.cpp
===================================================================
RCS file: /home/kde/kdepim/kmail/kmacctexppop.cpp,v
retrieving revision 1.129
retrieving revision 1.130
diff -u -p -r1.129 -r1.130
--- kmacctexppop.cpp    9 Mar 2003 23:34:02 -0000       1.129
+++ kmacctexppop.cpp    11 Mar 2003 13:14:09 -0000      1.130
@@ -405,6 +405,9 @@ void KMAcctExpPop::slotJobFinished() {
       "The feature to leave the mails on the server will therefore not "
       "work properly."));
     }
+    // An attempt to work around buggy pop servers, these seem to be popular.
+    if (uidsOfNextSeenMsgs.isEmpty())
+       uidsOfNextSeenMsgs = uidsOfSeenMsgs;

     //check if filter on server
     if (mFilterOnServer == true) {
-----

I added kdDebugs around the code:

-----
    kdDebug() << "***************** " << k_funcinfo << "uidsOfNextSeenMsgs: "
              << uidsOfNextSeenMsgs.count() << endl;
    // An attempt to work around buggy pop servers, these seem to be popular.
    if (uidsOfNextSeenMsgs.isEmpty())
      uidsOfNextSeenMsgs = mUidsOfSeenMsgs;

    kdDebug() << "***************** " << k_funcinfo << "uidsOfNextSeenMsgs: "
              << uidsOfNextSeenMsgs.count() << endl;
-----

And the output:

-----
kmail: ****** [void KMAcctExpPop::slotJobFinished()] uidsOfNextSeenMsgs: 0
kmail: ****** [void KMAcctExpPop::slotJobFinished()] uidsOfNextSeenMsgs: 80645
-----

OOPS :)

This commit makes the UID list grow ad infinitum without ever returning to 
normal.

After looking at the code I have the impression that disabling this check will 
indeed restore the behaviour I proposed, but I'm pretty sure Don didn't 
commit this just for the fun of it.

What exactly is broken that it requires this hack, and what's a solution that 
doesn't have this massive side effect?

-- 
Martijn
_______________________________________________
KMail developers mailing list
KMail-devel@kde.org
https://mail.kde.org/mailman/listinfo/kmail-devel

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

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