From cbd4447a8e95415df9552ff6deb378a3f8ea30d3 Mon Sep 17 00:00:00 2001 From: discomfitor Date: Wed, 29 Sep 2010 05:08:47 +0000 Subject: [PATCH] reorder some handshake events to hopefully reduce overhead slightly git-svn-id: svn+ssh://svn.enlightenment.org/var/svn/e/trunk/ecore@52878 7cbeb6ba-43b4-40fd-8cce-4c39aea84d33 --- src/lib/ecore_con/ecore_con.c | 67 +++++++++++++++++++++---------------------- 1 file changed, 33 insertions(+), 34 deletions(-) diff --git a/src/lib/ecore_con/ecore_con.c b/src/lib/ecore_con/ecore_con.c index 83e9d8d..48c176e 100644 --- a/src/lib/ecore_con/ecore_con.c +++ b/src/lib/ecore_con/ecore_con.c @@ -1817,43 +1817,42 @@ _ecore_con_cl_handler(void *data, Ecore_Fd_Handler *fd_handler) if (svr->delete_me) return ECORE_CALLBACK_RENEW; - if (svr->handshaking) + if (svr->handshaking && ecore_main_fd_handler_active_get(fd_handler, ECORE_FD_READ | ECORE_FD_WRITE)) { DBG("Continuing ssl handshake"); - if (ecore_con_ssl_server_init(svr)) + if (!svr->ssl_state) { - ERR("ssl handshaking failed!"); - Ecore_Con_Event_Server_Del *e; + /* we got our server! */ + Ecore_Con_Event_Server_Add *e; - e = calloc(1, sizeof(Ecore_Con_Event_Server_Del)); + svr->connecting = EINA_FALSE; + e = calloc(1, sizeof(Ecore_Con_Event_Server_Add)); if (e) { svr->event_count++; + svr->start_time = ecore_time_get(); e->server = svr; - ecore_event_add(ECORE_CON_EVENT_SERVER_DEL, e, - _ecore_con_event_server_del_free, NULL); + ecore_event_add(ECORE_CON_EVENT_SERVER_ADD, e, + _ecore_con_event_server_add_free, NULL); } } - else if (!svr->ssl_state) + else if (ecore_con_ssl_server_init(svr)) { - /* we got our server! */ - Ecore_Con_Event_Server_Add *e; + ERR("ssl handshaking failed!"); + Ecore_Con_Event_Server_Del *e; - svr->connecting = EINA_FALSE; - e = calloc(1, sizeof(Ecore_Con_Event_Server_Add)); + e = calloc(1, sizeof(Ecore_Con_Event_Server_Del)); if (e) { svr->event_count++; - svr->start_time = ecore_time_get(); e->server = svr; - ecore_event_add(ECORE_CON_EVENT_SERVER_ADD, e, - _ecore_con_event_server_add_free, NULL); + ecore_event_add(ECORE_CON_EVENT_SERVER_DEL, e, + _ecore_con_event_server_del_free, NULL); } } - return ECORE_CALLBACK_RENEW; } - if (ecore_main_fd_handler_active_get(fd_handler, ECORE_FD_READ)) + else if (ecore_main_fd_handler_active_get(fd_handler, ECORE_FD_READ)) _ecore_con_cl_read(svr); else if (ecore_main_fd_handler_active_get(fd_handler, ECORE_FD_WRITE)) { @@ -2163,9 +2162,23 @@ _ecore_con_svr_cl_handler(void *data, Ecore_Fd_Handler *fd_handler) if (cl->delete_me) return ECORE_CALLBACK_RENEW; - if (cl->handshaking) + if (cl->handshaking && ecore_main_fd_handler_active_get(fd_handler, ECORE_FD_READ | ECORE_FD_WRITE)) { - if (ecore_con_ssl_client_init(cl)) + if (!cl->ssl_state) + { + Ecore_Con_Event_Client_Add *add; + + add = calloc(1, sizeof(Ecore_Con_Event_Client_Add)); + if(add) + { +/*cl->event_count++;*/ + add->client = cl; + _ecore_con_cl_timer_update(cl); + ecore_event_add(ECORE_CON_EVENT_CLIENT_ADD, add, + _ecore_con_event_client_add_free, NULL); + } + } + else if (ecore_con_ssl_client_init(cl)) { ERR("ssl handshaking failed!"); /* we lost our client! */ @@ -2183,23 +2196,9 @@ _ecore_con_svr_cl_handler(void *data, Ecore_Fd_Handler *fd_handler) } } - else if (!cl->ssl_state) - { - Ecore_Con_Event_Client_Add *add; - - add = calloc(1, sizeof(Ecore_Con_Event_Client_Add)); - if(add) - { -/*cl->event_count++;*/ - add->client = cl; - _ecore_con_cl_timer_update(cl); - ecore_event_add(ECORE_CON_EVENT_CLIENT_ADD, add, - _ecore_con_event_client_add_free, NULL); - } - } return ECORE_CALLBACK_RENEW; } - if (ecore_main_fd_handler_active_get(fd_handler, ECORE_FD_READ)) + else if (ecore_main_fd_handler_active_get(fd_handler, ECORE_FD_READ)) _ecore_con_svr_cl_read(cl); else if (ecore_main_fd_handler_active_get(fd_handler, ECORE_FD_WRITE)) -- 2.7.4