fetchmail-friends
[Top] [All Lists]

Re: fetchmail uidl problem and fix with buggy pop3 servers (fwd)

2001-02-07 06:51:04
Finally, I got it: it is called popa3d written by Solar Designer.

bye
Gabor Herman
gaborh(_at_)ludens(_dot_)elte(_dot_)hu

---------- Forwarded message ----------
Date: Wed, 7 Feb 2001 05:13:32 +0100
From: Herman Gabor <GABORH(_at_)ludens(_dot_)elte(_dot_)hu>
To: esr(_at_)thyrsus(_dot_)com
Cc: esr(_at_)snark(_dot_)thyrsus(_dot_)com, 
fetchmail-friends(_at_)ccil(_dot_)org
Subject: Re: fetchmail uidl problem and fix with buggy pop3 servers

Unfortunately, the server says nothing about itself in the greeting line. 
I wrote a mail to the root of the server, maybe he'll tell me which POP3 
server it is. The hostname is valerie.inf.elte.hu in case you want to see 
it...:-)

Gabor Herman
gaborh(_at_)ludens(_dot_)elte(_dot_)hu

Date: Tue, 6 Feb 2001 22:43:17 -0500
From: "Eric S. Raymond" <esr(_at_)thyrsus(_dot_)com>
To: gaborh(_at_)ludens(_dot_)elte(_dot_)hu
Cc: esr(_at_)snark(_dot_)thyrsus(_dot_)com, 
fetchmail-friends(_at_)ccil(_dot_)org
Subject: Re: fetchmail uidl problem and fix with buggy pop3 servers

gaborh(_at_)ludens(_dot_)elte(_dot_)hu 
<gaborh(_at_)ludens(_dot_)elte(_dot_)hu>:
In your FAQ you write if I fix a POP3-related problem I should send it to
you. So here it is.

Problem:
My pop3 server doesn't confirm to the RFC1725 standard correctly. It sends
UID-s this way:

C: UIDL
S: +OK
S: +OK 1 whqtswO00WBw418f9t5JxYwZ
S: +OK 2 QhdPYR:00WBw1Ph7x7

The +OK's at the beginning of each line cause fetchmail to be unable to
read the id's. 
My fix to pop3.c is here:
http://ludens.elte.hu/~gaborh/pop3.c

But I'll explain it here also. Line numbers refer to _my_ pop3.c file.

line 43:
#define OK_WITH_UIDLS(s)        (s[0] == '+' && s[1]=='O' && s[2]=='K' 
&& s[3]==' ')
//It tells you wether the buffer contains the '+OK' at the beginning

line 424:
char dontneed [4];
//here will we put the spare '+OK'

lines 462-467
else if (
     OK_WITH_UIDLS(buf) ?
     (sscanf(buf, "%s %d %s", dontneed, &num, id) ==3) :
        (sscanf(buf, "%d %s", &num, id) == 2)
)
//if the buffer begins with "+OK " we just simply throw it away

What's the greeting line from this awful crock?
-- 
              <a href="http://www.tuxedo.org/~esr/";>Eric S. Raymond</a>

Ideology, politics and journalism, which luxuriate in failure, are
impotent in the face of hope and joy.
      -- P. J. O'Rourke




<Prev in Thread] Current Thread [Next in Thread>
  • Re: fetchmail uidl problem and fix with buggy pop3 servers (fwd), Herman Gabor <=