patch; tls -- clear SSL global error queue
http://www.openssl.org/docs/ssl/SSL_get_error.html http://comments.gmane.org/gmane.comp.encryption.openssl.devel/18690
This commit is contained in:
parent
abf42bc3d3
commit
a9a0f8459c
1 changed files with 7 additions and 0 deletions
|
@ -127,6 +127,8 @@ static int tls_connect(struct tls_conn *tc)
|
|||
if (r <= 0) {
|
||||
const int ssl_err = SSL_get_error(tc->ssl, r);
|
||||
|
||||
ERR_clear_error();
|
||||
|
||||
switch (ssl_err) {
|
||||
|
||||
case SSL_ERROR_WANT_READ:
|
||||
|
@ -152,6 +154,8 @@ static int tls_accept(struct tls_conn *tc)
|
|||
if (r <= 0) {
|
||||
const int ssl_err = SSL_get_error(tc->ssl, r);
|
||||
|
||||
ERR_clear_error();
|
||||
|
||||
switch (ssl_err) {
|
||||
|
||||
case SSL_ERROR_WANT_READ:
|
||||
|
@ -237,6 +241,8 @@ static bool recv_handler(int *err, struct mbuf *mb, bool *estab, void *arg)
|
|||
if (n < 0) {
|
||||
const int ssl_err = SSL_get_error(tc->ssl, n);
|
||||
|
||||
ERR_clear_error();
|
||||
|
||||
switch (ssl_err) {
|
||||
|
||||
case SSL_ERROR_WANT_READ:
|
||||
|
@ -270,6 +276,7 @@ static bool send_handler(int *err, struct mbuf *mb, void *arg)
|
|||
r = SSL_write(tc->ssl, mbuf_buf(mb), (int)mbuf_get_left(mb));
|
||||
if (r <= 0) {
|
||||
DEBUG_WARNING("SSL_write: %d\n", SSL_get_error(tc->ssl, r));
|
||||
ERR_clear_error();
|
||||
*err = EPROTO;
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue