SATOH Fumiyasu
2011-Jul-30 16:41 UTC
[Dovecot] [PATCH] net_connect_*(): Wait for fd to complete connect(2) when fd is non-blocking
Hi, Dovecot ignores EINPROGRESS on connect(2) for non-blocking fd. This is wrong. After that, read(2) to fd (or write(2) to fd) fails with ENOTCONN if the connection of fd is not completed. The attached patch fixes this problem. -- -- Name: SATOH Fumiyasu (fumiyas @ osstech co jp) -- Business Home: http://www.OSSTech.co.jp/ -- Personal Home: http://www.SFO.jp/blog/ -------------- next part -------------- A non-text attachment was scrubbed... Name: dovecot-2.0.13-wait-for-fd-to-complete-connect.patch Type: text/x-diff Size: 2278 bytes Desc: not available URL: <http://dovecot.org/pipermail/dovecot/attachments/20110731/89043659/attachment-0002.bin>
SATOH Fumiyasu
2011-Jul-31 05:40 UTC
[Dovecot] [PATCH] net_connect_*(): Wait for fd to complete connect(2) when fd is non-blocking
Hi, I've regenerated the patch with 'hg export' instead of 'hg log -p'. (Sorry, I'm a Mercurial newbie.) At Sun, 31 Jul 2011 01:41:22 +0900, SATOH Fumiyasu wrote:> Dovecot ignores EINPROGRESS on connect(2) for non-blocking fd. > This is wrong. After that, read(2) to fd (or write(2) to fd) fails > with ENOTCONN if the connection of fd is not completed. > > The attached patch fixes this problem.-- -- Name: SATOH Fumiyasu (fumiyas @ osstech co jp) -- Business Home: http://www.OSSTech.co.jp/ -- Personal Home: http://www.SFO.jp/blog/ -------------- next part -------------- A non-text attachment was scrubbed... Name: dovecot-2.0.13-wait-for-fd-to-complete-connect.patch Type: text/x-diff Size: 2366 bytes Desc: not available URL: <http://dovecot.org/pipermail/dovecot/attachments/20110731/ba1d5984/attachment-0002.bin>
SATOH Fumiyasu
2011-Aug-02 02:25 UTC
[Dovecot] [PATCH] net_connect_*(): Wait for fd to complete connect(2) when fd is non-blocking
Hi! At Sun, 31 Jul 2011 14:40:10 +0900, SATOH Fumiyasu wrote:> I've regenerated the patch with 'hg export' instead of 'hg log -p'. > (Sorry, I'm a Mercurial newbie.) > > At Sun, 31 Jul 2011 01:41:22 +0900, > SATOH Fumiyasu wrote: > > Dovecot ignores EINPROGRESS on connect(2) for non-blocking fd. > > This is wrong. After that, read(2) to fd (or write(2) to fd) fails > > with ENOTCONN if the connection of fd is not completed. > > > > The attached patch fixes this problem.Any comment? On a high-load Solaris 10 box, dovecot-lda fails to query (I/O) to dovecot dict socket with ENOTCONN. My patch fixes this problem. Regards, -- -- Name: SATOH Fumiyasu (fumiyas @ osstech co jp) -- Business Home: http://www.OSSTech.co.jp/ -- Personal Home: http://www.SFO.jp/blog/