From 315020275505ad4afbf8ea63decc1372864d1810 Mon Sep 17 00:00:00 2001 From: Mike Blumenkrantz Date: Wed, 22 Sep 2010 17:37:25 +0000 Subject: [PATCH] clean up openssl handshake SVN revision: 52597 --- .../ecore/src/lib/ecore_con/ecore_con_ssl.c | 32 +++++++++++++++---- 1 file changed, 26 insertions(+), 6 deletions(-) diff --git a/legacy/ecore/src/lib/ecore_con/ecore_con_ssl.c b/legacy/ecore/src/lib/ecore_con/ecore_con_ssl.c index 1b871581ea..3eb975ec7d 100644 --- a/legacy/ecore/src/lib/ecore_con/ecore_con_ssl.c +++ b/legacy/ecore/src/lib/ecore_con/ecore_con_ssl.c @@ -9,6 +9,7 @@ #elif USE_OPENSSL # include # include +# include #endif #ifdef HAVE_WS2TCPIP_H @@ -168,6 +169,13 @@ ecore_con_ssl_available_get(void) return _ECORE_CON_SSL_AVAILABLE; } +#if 0 +EAPI Eina_Bool +ecore_con_ssl_server_reinit() +{ + +} +#endif Ecore_Con_Ssl_Error ecore_con_ssl_server_prepare(Ecore_Con_Server *svr, int ssl_type) @@ -824,6 +832,13 @@ _ecore_con_ssl_server_prepare_openssl(Ecore_Con_Server *svr, int ssl_type) private_key->count++; } +#if 0 + if (svr->created) + { + SSL_ERROR_CHECK_GOTO_ERROR(!DH_generate_parameters_ex(svr->dh_params, 1024, DH_GENERATOR_5, NULL)); + + } +#endif return ECORE_CON_SSL_ERROR_NONE; error: @@ -844,11 +859,13 @@ _ecore_con_ssl_server_init_openssl(Ecore_Con_Server *svr) SSL_ERROR_CHECK_GOTO_ERROR(!SSL_set_fd(svr->ssl, svr->fd)); SSL_set_connect_state(svr->ssl); - while ((ret = SSL_do_handshake(svr->ssl)) < 1) + do { - int err = SSL_get_error(svr->ssl, ret); + int err; + ret = SSL_do_handshake(svr->ssl); + err = SSL_get_error(svr->ssl, ret); SSL_ERROR_CHECK_GOTO_ERROR((err == SSL_ERROR_SYSCALL) || (err == SSL_ERROR_SSL)); - } + } while (ret < 1); return ECORE_CON_SSL_ERROR_NONE; @@ -1036,11 +1053,14 @@ _ecore_con_ssl_client_init_openssl(Ecore_Con_Client *cl) SSL_ERROR_CHECK_GOTO_ERROR(!SSL_set_fd(cl->ssl, cl->fd)); SSL_set_accept_state(cl->ssl); - while ((ret = SSL_do_handshake(cl->ssl)) < 1) + + do { - int err = SSL_get_error(cl->ssl, ret); + int err; + ret = SSL_do_handshake(cl->ssl); + err = SSL_get_error(cl->ssl, ret); SSL_ERROR_CHECK_GOTO_ERROR((err == SSL_ERROR_SYSCALL) || (err == SSL_ERROR_SSL)); - } + } while (ret < 1); return ECORE_CON_SSL_ERROR_NONE;