aboutsummaryrefslogtreecommitdiff
path: root/src/espik_net.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/espik_net.c')
-rw-r--r--src/espik_net.c24
1 files changed, 20 insertions, 4 deletions
diff --git a/src/espik_net.c b/src/espik_net.c
index 5fe8944..679ee04 100644
--- a/src/espik_net.c
+++ b/src/espik_net.c
@@ -21,6 +21,17 @@ char connected = 0;
Ecore_Con_Server* con_sock;
+typedef struct
+{
+ Ecore_Event_Handler* data;
+ Ecore_Event_Handler* up;
+ Ecore_Event_Handler* down;
+
+} espik_con_handler_list;
+
+
+espik_con_handler_list handler_list;
+
void espik_con_init (t_info serv_info)
{
int nb_launch;
@@ -44,7 +55,7 @@ void espik_con_init (t_info serv_info)
exit (-1);
}
- if (! (ecore_event_handler_add (ECORE_CON_EVENT_SERVER_DATA,
+ if (! (handler_list.data = ecore_event_handler_add (ECORE_CON_EVENT_SERVER_DATA,
(Handler_Func) server_data, NULL)))
{
espik_debug_print ("ecore_event_handler_add "
@@ -52,7 +63,7 @@ void espik_con_init (t_info serv_info)
exit (-1);
}
- if (! (ecore_event_handler_add (ECORE_CON_EVENT_SERVER_ADD,
+ if (! (handler_list.up = ecore_event_handler_add (ECORE_CON_EVENT_SERVER_ADD,
(Handler_Func) espik_con_up, NULL)))
{
espik_debug_print ("ecore_event_handler_add "
@@ -60,7 +71,7 @@ void espik_con_init (t_info serv_info)
exit (-1);
}
- if (! (ecore_event_handler_add (ECORE_CON_EVENT_SERVER_DEL,
+ if (! (handler_list.down = ecore_event_handler_add (ECORE_CON_EVENT_SERVER_DEL,
(Handler_Func) espik_con_shutdown, NULL)))
{
espik_debug_print ("ecore_event_handler_add "
@@ -122,10 +133,16 @@ void espik_con_shutdown ()
espik_debug_print ("ecore_con_server_del: %p",
ecore_con_server_del (con_sock));
+
ecore_con_shutdown ();
+ ecore_event_handler_del (handler_list.data);
+ ecore_event_handler_del (handler_list.up);
+ ecore_event_handler_del (handler_list.down);
+
ecore_main_loop_quit ();
free (server_dns);
+
espik_leave();
}
@@ -150,7 +167,6 @@ void espik_raw_send (const char *msg)
printf ("out[len-1]: 0x%X\n", out[len - 1]);
*/
-
int i;
for (i = 0 ; buf.buf[i] != 0 ; i++)
{