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

List:       kmail-devel
Subject:    PATCH: Internal POP3 error
From:       Michael =?iso-8859-1?q?H=E4ckel?= <Michael () Haeckel ! Net>
Date:       2001-06-30 21:44:03
[Download RAW message or body]

Hi,

attached patch fixes the problem, that the pop3 kio slave currently reports 
on average after every 2000 mails and internal error.

Actually I though, I tested all cases by setting the packet size temporarily 
to 1, but I always tested only retrieving a single mail and not several.

If you change 
  ssize_t readlen = Read(buf, sizeof(buf)-1);
to
  ssize_t readlen = Read(buf, 1);
it is always reproducable, if there are more than one mails on the server.

Please review.

Regards,
Michael Häckel
["internal-error.diff" (text/x-diff)]

Index: pop3.cc
===================================================================
RCS file: /home/kde/kdebase/kioslave/pop3/pop3.cc,v
retrieving revision 1.115
diff -u -3 -p -r1.115 pop3.cc
--- pop3.cc	2001/06/24 10:33:29	1.115
+++ pop3.cc	2001/06/30 21:36:42
@@ -764,7 +764,11 @@ void POP3Protocol::get (const KURL& url)
 				// "." means end of data
 				for (ssize_t i = 0; i < readlen; i++)
 				{
-				  if (*buf1 == '\r' && eat) { endOfMail = true; break; }
+				  if (*buf1 == '\r' && eat) {
+				    endOfMail = true;
+				    if (i == readlen - 1 && !AtEOF()) Read(buf, 1);
+				    break;
+				  }
 				  else if (*buf1 == '\n') { newline = true; eat = false; }
 				  else if (*buf1 == '.' && newline) { newline = false; eat = true; }
 				  else { newline = false; eat = false; }

_______________________________________________
Kmail Developers mailing list
Kmail@master.kde.org
http://master.kde.org/mailman/listinfo/kmail


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

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