That helped. Ethereal kicks ass :-)

What happens in your case:

Your clients sends a FETCH BODY.PEEK[..] command which requires dbmail to retrieve and parse a *lot* of messages. While dbmail is happily sending back the results, thunderbird sends a logout command which is ignored by dbmail since it's busy. Dbmail keeps sending back results where thunderbird is trying to close the socket, which in turn triggers thunderbird into sending RST packets, destroying the socket.

Ilja: the return value from ci_write can in many cases be ignored but probably be respected in most cases. Perhaps the ci_write wrapper should be replaced by a macro like

#define CI_WRITE(fd, template, ...) \
        if ((int result = ci_write(fd, templace, ...))
                return result;


Blake Mitchell wrote:
Not to beat a dead horse, but I'm still curious about this, as it seems to time out too quickly. So I did a tcpdump on the same operation I posted the log from. It is here: http://barkingspoon.com/imap.tcpdump.txt or http://barkingspoon.com/imap.tcpdump for the raw tcpdump file. It looks to me as if some of the header information is successfully transfered back to the client, even though it never shows up there. Although I have very little experience looking at packet logs, and none at all with the imap protocol. Anyone more adept care to take a look?

Blake
_______________________________________________
Dbmail-dev mailing list
[email protected]
http://twister.fastxs.net/mailman/listinfo/dbmail-dev


--
  ________________________________________________________________
  Paul Stevens                                  mailto:[EMAIL PROTECTED]
  NET FACILITIES GROUP                     PGP: finger [EMAIL PROTECTED]
  The Netherlands________________________________http://www.nfg.nl

Reply via email to