From: <enl...@li...> - 2004-04-12 19:43:26
|
Enlightenment CVS committal Author : tsauerbeck Project : e17 Module : libs/ecore Dir : e17/libs/ecore/src/lib/ecore_con Modified Files: ecore_con.c Log Message: only call SSL_get_error() if the previous SSL call failed =================================================================== RCS file: /cvsroot/enlightenment/e17/libs/ecore/src/lib/ecore_con/ecore_con.c,v retrieving revision 1.17 retrieving revision 1.18 diff -u -3 -r1.17 -r1.18 --- ecore_con.c 4 Apr 2004 00:15:56 -0000 1.17 +++ ecore_con.c 12 Apr 2004 19:29:37 -0000 1.18 @@ -717,12 +717,12 @@ assert(svr->connecting); assert(svr->ssl); - res = SSL_connect(svr->ssl); - ssl_err = SSL_get_error(svr->ssl, res); - - if (ssl_err == SSL_ERROR_NONE) + if ((res = SSL_connect(svr->ssl)) == 1) return 1; + ssl_err = SSL_get_error(svr->ssl, res); + assert (ssl_err != SSL_ERROR_NONE); + if (ssl_err == SSL_ERROR_WANT_READ) flag = ECORE_FD_READ; else if (ssl_err == SSL_ERROR_WANT_WRITE) @@ -782,7 +782,7 @@ { Ecore_Con_Server *svr; #if USE_OPENSSL - int ssl_err = 0; + int ssl_err = SSL_ERROR_NONE; #endif svr = data; @@ -812,8 +812,12 @@ #if USE_OPENSSL } else { num = SSL_read(svr->ssl, svr->read_buf, READBUFSIZ); - ssl_err = SSL_get_error(svr->ssl, num); - lost_server = (ssl_err == SSL_ERROR_ZERO_RETURN); + + if (num < 1) { + ssl_err = SSL_get_error(svr->ssl, num); + lost_server = (ssl_err == SSL_ERROR_ZERO_RETURN); + } else + ssl_err = SSL_ERROR_NONE; } #endif if (num < 1) @@ -958,7 +962,7 @@ { int count, num, lost_server = 0; #if USE_OPENSSL - int ssl_err; + int ssl_err = SSL_ERROR_NONE; #endif if (!svr->write_buf) return; @@ -984,8 +988,11 @@ #if USE_OPENSSL } else { count = SSL_write(svr->ssl, svr->write_buf + svr->write_buf_offset, num); - ssl_err = SSL_get_error(svr->ssl, count); - lost_server = (ssl_err == SSL_ERROR_ZERO_RETURN); + + if (count < 1) { + ssl_err = SSL_get_error(svr->ssl, count); + lost_server = (ssl_err == SSL_ERROR_ZERO_RETURN); + } } #endif |