From: Matthias A. <mat...@gm...> - 2008-01-29 10:37:12
|
[CC:'ing Jason Tishler as the Cygwin fetchmail packager] av...@ph... schrieb am 2008-01-29: > I know I have asked this question once before and an argument has started that I > am misbehaving or something. > First of all, let me applogize (I am sure you hardly remember) and give my > appreciation to all of you who help and keep these things opensourced while > others charges us tons of bucks. > > The problem that I am having is one stated on the subject line, this error does > not occur because of communications or sockets errors, it occurs only in certain > terms which took me a few months to figure out how to replicate it. > > It seems that yahoo.com mail sends out some mails with attachments listed not as > binary but as text/plain files, seems like a specific file type (that I > encountered) .PLT while being sent as text/plain creates the following problem. > > (For those of you who might not know, .PLT are plot files that contains > construction diagrams usually made by Autocad and the like programs). > > Platform is cygwin fetchmail 6.3.8 reading mail from qmail server (using pop3) > and posting it to an exchange server (using smtp) Avi, what Cygwin version, what Cygwin DLL version, and what Windows version does this happen on? Jason, was there ever any feedback to your discussion (link below)? The list archives don't contain direct followups. > fetchmail: SMTP< 354 Start mail input; end with <CRLF>.<CRLF> > #******fetchmail: Cygwin socket read retry > *******************.*****fetchmail: Cygwin socket read retry > ........*........*........*........*........*........*........*........*........ > > *........*........*fetchmail: socket error while fetching from ma...@ru.... > il@192.168.253.253 > fetchmail: 6.3.8 querying 192.168.253.253 (protocol POP3) at Tue Jan 29 01:45:20 > 2008: poll > completed > I believe this is something to do with the attachments headers since the same > thing happens if I forward the mail from my email, but if I download the file > and attach it on my own - it works flawlessly. As far as I read the comments in the source code (socket.c, c. line 1026ff.): | #ifdef __CYGWIN__ | /* | * Workaround Microsoft Winsock recv/WSARecv(..., MSG_PEEK) bug. | * See http://sources.redhat.com/ml/cygwin/2001-08/msg00628.html | * for more details. | */ | static ssize_t cygwin_read(int sock, void *buf, size_t count) [...] And this pretty much looks like a severe Windows operating system bug. Be sure to read the English version of: <http://support.microsoft.com/?scid=kb%3Ben-us%3B192599&x=10&y=11> <http://support.microsoft.com/?scid=kb%3Ben-us%3B140263&x=12&y=17> (the automated translations are barely readable, Microsoft should rid the world of that crap) I need to think about this a bit and see if we can restructure socket.c and perhaps use external libraries or wrapper code to avoid peeking altogether, but there's a strong inclination to shove this up to Cygwin and claim that Cygwin as the interfacing layer should work around Winsock/BSD socket incompatibilities. If you want a QUICK solution, I'd suggest to go with Rob's first suggestion and use some decent Linux (Debian, Ubuntu Server, Mandriva, Fedora are reasonable starting points) or BSD (in lexicographical order DragonflyBSD, FreeBSD, NetBSD, OpenBSD) and run fetchmail there. If you cannot spare the hardware, there are several virtualization options. I don't know much of them and have only collected experience with VMware (server and workstation), but I do know that VMware server works for me and has a reasonable "bridged network" mode - VMware uses truckloads of RAM though for my deployments. HTH, -- Matthias Andree |