Dear All.<br><br>I am having trouble with accepting SSl connections on slow links in case of delays over 2000ms. ssl:ssl_accept fails with {error, esslconnect}.<br>I tried runnig ssl_esock with debug output on, and i have found out that the reason of esslaccept is the EAGAIN error reported by underlying OS(FreeBSD ) when the ssl module tries to receive the client sertificate. The debug output is this:<br>
<br>==========LOOP=============^M<br>MASKS SET FOR FD: 11 (read) 9 (read) 8 (read) 10 (read) 5 (read) ^M<br>CONNECTIONS:^M<br> - SSL_ACCEPT [0x8138d80] (fd = 11)^M<br> - JOINED [0x812f900] (origin = accept)^M<br> (fd = 8, eof = 0, wq = 0, bp = 0)^M<br>
(proxyfd = 9, eof = 0, wq = 0, bp = 0)^M<br> - JOINED [0x80fb300] (origin = accept)^M<br> (fd = 7, eof = 1, wq = 0, bp = 0)^M<br> (proxyfd = 10, eof = 0, wq = 0, bp = 1)^M<br> - PASSIVE_LISTENING [0x80e7b80] (fd = 6)^M<br>
- ACTIVE_LISTENING [0x80e7700] (fd = 5, acceptors = 8)^M<br>Before poll/select: 6 descriptors (total 11)^M<br>-----------------------------------^M<br>SSL_ACCEPT fd = 11^M<br>esock_ssl_accept: calling SSL_accept fd = 11^M<br>
state before: UNKWN ^M<br> info: before/accept initialization^M<br> info: SSLv3 read client hello A^M<br> info: SSLv3 write server hello A^M<br> info: SSLv3 write certificate A^M<br> info: SSLv3 write certificate request A^M<br>
info: SSLv3 flush data^M<br> info: error in SSLv3 read client certificate A^M<br> info: error in SSLv3 read client certificate A^M<br> sock_errno 35 errno 35 ^M<br> SSL_accept = -1^M<br> ssl_error: SSL_ERROR_WANT_READ^M<br>
state after: 3RCC_A^M<br> ret -1 os error Resource temporarily unavailable^M<br>==========LOOP=============^M<br><br><br>As far as i understand the SSL_accept(that handles the accept in ssl_esock) function should have tried continuously on receiveing client certificate if the OS reported EAGAIN. However it does not,and i am really clueless about any workarounds or changes that would solve this problem.<br>
Any help would be appreciated.<br><br>