From ae09491ee77602a2fe1acfd8e09d865c15b34cfc Mon Sep 17 00:00:00 2001 From: raster Date: Thu, 16 Dec 2010 04:38:37 +0000 Subject: [PATCH] From: Mike McCormack Subject: [E-devel] [PATCH 1/4] ecore_con: Always close fd after remove fdh from main loop git-svn-id: svn+ssh://svn.enlightenment.org/var/svn/e/trunk/ecore@55570 7cbeb6ba-43b4-40fd-8cce-4c39aea84d33 --- src/lib/ecore_con/ecore_con.c | 31 +++++++++++++++++-------------- 1 file changed, 17 insertions(+), 14 deletions(-) diff --git a/src/lib/ecore_con/ecore_con.c b/src/lib/ecore_con/ecore_con.c index 9e8b50c..49f1fae 100644 --- a/src/lib/ecore_con/ecore_con.c +++ b/src/lib/ecore_con/ecore_con.c @@ -373,12 +373,12 @@ error: free(svr->path); #ifndef _WIN32 - if (svr->fd >= 0) - close(svr->fd); - if (svr->fd_handler) ecore_main_fd_handler_del(svr->fd_handler); + if (svr->fd >= 0) + close(svr->fd); + if (svr->write_buf) free(svr->write_buf); @@ -494,12 +494,12 @@ error: if (svr->path) free(svr->path); - if (svr->fd >= 0) - close(svr->fd); - if (svr->fd_handler) ecore_main_fd_handler_del(svr->fd_handler); + if (svr->fd >= 0) + close(svr->fd); + ecore_con_ssl_server_shutdown(svr); free(svr); return NULL; @@ -1184,9 +1184,6 @@ _ecore_con_server_free(Ecore_Con_Server *svr) unlink(svr->path); ecore_con_ssl_server_shutdown(svr); - if (svr->fd >= 0) - close(svr->fd); - if (svr->name) free(svr->name); @@ -1199,6 +1196,9 @@ _ecore_con_server_free(Ecore_Con_Server *svr) if (svr->fd_handler) ecore_main_fd_handler_del(svr->fd_handler); + if (svr->fd >= 0) + close(svr->fd); + servers = eina_list_remove(servers, svr); svr->data = NULL; free(svr); @@ -1253,12 +1253,12 @@ _ecore_con_client_free(Ecore_Con_Client *cl) if (cl->host_server->type & ECORE_CON_SSL) ecore_con_ssl_client_shutdown(cl); - if (cl->fd >= 0) - close(cl->fd); - if (cl->fd_handler) ecore_main_fd_handler_del(cl->fd_handler); + if (cl->fd >= 0) + close(cl->fd); + if (cl->client_addr) free(cl->client_addr); cl->client_addr = NULL; @@ -1771,9 +1771,12 @@ _ecore_con_svr_tcp_handler(void *data, return ECORE_CALLBACK_RENEW; error: - close(new_fd); if (cl && cl->fd_handler) - ecore_main_fd_handler_del(cl->fd_handler); + { + ecore_main_fd_handler_del(cl->fd_handler); + close(cl->fd); + free(cl); + } return ECORE_CALLBACK_RENEW; } -- 2.7.4