From 7414159100ab3a4398dfe3dafe8c26d50632d5f7 Mon Sep 17 00:00:00 2001 From: discomfitor Date: Wed, 13 Oct 2010 16:40:52 +0000 Subject: [PATCH] 2 obscure bugs in one commit: make cert use more overt and set up fd handler before attempting to use it git-svn-id: svn+ssh://svn.enlightenment.org/var/svn/e/trunk/ecore@53363 7cbeb6ba-43b4-40fd-8cce-4c39aea84d33 --- src/lib/ecore_con/ecore_con.c | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/src/lib/ecore_con/ecore_con.c b/src/lib/ecore_con/ecore_con.c index 2fc5d5a..3095fd6 100644 --- a/src/lib/ecore_con/ecore_con.c +++ b/src/lib/ecore_con/ecore_con.c @@ -298,7 +298,8 @@ ecore_con_server_add(Ecore_Con_Type compl_type, svr->port = port; svr->data = (void *)data; svr->created = EINA_TRUE; - svr->use_cert = (compl_type & ECORE_CON_LOAD_CERT); + if (compl_type & ECORE_CON_LOAD_CERT) + svr->use_cert = EINA_TRUE; svr->reject_excess_clients = EINA_FALSE; svr->client_limit = -1; svr->clients = NULL; @@ -1674,6 +1675,11 @@ _ecore_con_svr_tcp_handler(void *data, Ecore_Fd_Handler *fd_handler __UNUSED__) cl->fd = new_fd; cl->host_server = svr; + cl->fd_handler = ecore_main_fd_handler_add(cl->fd, ECORE_FD_READ, + _ecore_con_svr_cl_handler, cl, NULL, NULL); + ECORE_MAGIC_SET(cl, ECORE_MAGIC_CON_CLIENT); + + if (svr->type & ECORE_CON_SSL) { cl->handshaking = EINA_TRUE; @@ -1682,9 +1688,6 @@ _ecore_con_svr_tcp_handler(void *data, Ecore_Fd_Handler *fd_handler __UNUSED__) goto error; } - cl->fd_handler = ecore_main_fd_handler_add(cl->fd, ECORE_FD_READ, - _ecore_con_svr_cl_handler, cl, NULL, NULL); - ECORE_MAGIC_SET(cl, ECORE_MAGIC_CON_CLIENT); svr->clients = eina_list_append(svr->clients, cl); svr->client_count++; if (!svr->path) @@ -1709,6 +1712,8 @@ _ecore_con_svr_tcp_handler(void *data, Ecore_Fd_Handler *fd_handler __UNUSED__) error: close(new_fd); + if (cl->fd_handler) + ecore_main_fd_handler_del(cl->fd_handler); return ECORE_CALLBACK_RENEW; } -- 2.7.4