<div dir="ltr">Hi All,<div><br></div><div>I am using below code for creating SSL connection over a non-blocking socket:</div><div>-----------------------------------------------------</div><div>    ssl_error = SSL_connect(ssl_ctxt);<br>    if (ssl_error <= 0) {<br>        ssl_error = SSL_get_error(ssl_ctxt, ssl_error);<br>        switch (ssl_error) {<br>            case SSL_ERROR_WANT_READ:<br>            case SSL_ERROR_WANT_WRITE:<br>                return RETRY;<br>            default:<br>                ERR_load_crypto_strings();<br>                printf("SSL_connect failed  %s:%d",<br>                           ERR_error_string(ERR_get_error(), NULL), ssl_error);<br>                ERR_free_strings();<br>                return FAIL;<br>        }<br>    }<br></div><div>------------------------------------------------------------</div><div>As per Openssl doc, when above function returns RETRY, I am again polling on my 'fd' with epoll_wait(), and retrying SSL_conn, below is the pseudo code for it.</div><div>------------------------------------------</div><div>event.events  = EPOLLOUT;<br>event.data.fd = fd;  <br></div><div>epoll_ctl(epoll_fd, EPOLL_CTL_ADD, fd, &event)<br></div><div>event_count = epoll_wait(epoll_fd, events, MAX_EVENTS, 1000);<br></div><div>if(<span style="background-color:transparent">event_count > 0) {</span></div><div><span style="background-color:transparent">     //Call SSL_connect again.</span></div><div><span style="background-color:transparent">}</span></div><div><span style="background-color:transparent">-----------------------------------------------</span></div><div>Most of the time it's working fine, but sometimes I am observing that connection is not getting established and SSL_connect always returns <span style="background-color:transparent">SSL_ERROR_WANT_READ/</span><span style="background-color:transparent">SSL_ERROR_WANT_READ, which is resulting into an infinite loop.</span></div><div><span style="background-color:transparent"><br></span></div><div><span style="background-color:transparent">Can you please help me if there is something wrong in my code while handling these errors? or How I can gracefully come out of this situation and avoid infinite loop ?</span></div><div><span style="background-color:transparent"><br></span></div><div><span style="background-color:transparent">Thanks in advance.</span></div><div><span style="background-color:transparent"><br></span></div><div><span style="background-color:transparent">Regards,</span></div><div><span style="background-color:transparent">Amit</span></div></div>