On Wed, 14 Dec 2005, Timo Sirainen wrote:
On Wed, 2005-12-14 at 17:42 +0100, Vaclav Haisman wrote:
Only after posting the first patch I realised it is not good enough wrt/ IO_ERROR handling. The attached patch should be better.
Thanks, committed. I did a few minor changes so that it's consistent with Dovecot's coding style. Also a few other changes: I will try to follow the style.
unsigned char mode:3; -> enum io_condition in the struct. More readable and it doesn't use more space anyway unless you're going to add more fields.
memset() isn't needed after p_new(), it's already guaranteed to be zeroed.
Ok, I will remember this.
I'm not sure if the IO_ERROR handling isn't exactly correct. Can a callback be called twice there when error happens? Anyway, IO_ERROR isn't currently used anywhere. I added it for code that's going to be in Dovecot 2.0 where it needs to know when pipe gets closed.
I thought about this too. Maybe it can be fixed if its sole purpose is to watch out for pipe/socket getting disconnected. The EV_EOF flag should do just that.
What are the AC_CANONICAL_* macros in configure.in? I didn't add them.
I needed these to make the libtool I use work.
It would be nice if somebody with FreeBSD or NetBSD could test this patch a little bit under heavier load. My options are in this respect limited.
Vaclav Haisman