9 Jul
2004
9 Jul
'04
2:19 a.m.
On Fri, 2004-07-09 at 02:07, Matthew Reimer wrote:
- Fixed APPEND hanging if the whole message was sent in one TCP packet (ie. fixes the "Sent mail" hangs) .. It reads all of it into buffer, then later tries to read more even though everything was already in that buffer so it gets stuck at waiting. Dovecot's istream-limit wrapper stream specifically was a problem. It called parent stream's read() function without checking first if there was already data in it's buffer.
Is this a problem in 0.99 as well?
No, I don't think so. 0.99 didn't have wrapper streams, limits (eg. read only up to X bytes) were set to input stream directly, which made wrapper streams very complex to implement.
Wrapper streams make things pretty neat. It's possible to implement for example gzip or bzip2 wrapper streams for mboxes quite easily as a plugin.