[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
bug#23982: [master] Treat errno EINPROGRESS and ENOTCONN as EAGAIN for a
From: |
npostavs |
Subject: |
bug#23982: [master] Treat errno EINPROGRESS and ENOTCONN as EAGAIN for async connection |
Date: |
Fri, 15 Jul 2016 23:33:00 -0400 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/25.0.93 (gnu/linux) |
Jun Hao <jun_hao@aol.com> writes:
>
> For latest master branch, when try to use gnutls with async connection,
> the handshake will return fatal error if socket is in ENOTCONN or
> EINPROGRESS since gnutls treat these errors as fatal during push/pull
> and gives up. The later retry will fail because gnutls will mark the
> session invalid.
>
> This patch is asking gnutls to treat them as EAGAIN which is non-fatal.
>
> I only tested with OSX. Please see if you can reproduce it on Windows or
> Linux and if this patch works for them too.
>
> To reproduce run:
>
> emacs -Q --eval "(erc-tls :server \"irc.freenode.net\" :port 6697 :nick
> \"test\")"
>
> Current master branch will gave up connecting.
On both Window and GNU/Linux this successfully connect both with and
without the patch, i.e., patch seems not to be needed on non-OSX
platforms, but it doesn't seem to hurt either.