From 71dbdcf13a2297536400d204a4c2eae70fde26ca Mon Sep 17 00:00:00 2001 From: "Bertrand Jacquin (Beber)" Date: Sun, 22 Jan 2006 22:59:59 +0100 Subject: freeeee But that fuck --- src/espik.c | 19 +++++++++++-------- src/espik_config.c | 22 ++++++++++------------ src/espik_config.h | 2 +- src/espik_net.c | 24 ++++++++++++++++++++---- 4 files changed, 42 insertions(+), 25 deletions(-) diff --git a/src/espik.c b/src/espik.c index 45b4dd7..0cee0c6 100644 --- a/src/espik.c +++ b/src/espik.c @@ -57,6 +57,12 @@ int main (int argc, char **argv) #ifdef _ESPIK_DEBUG_ espik_debug_init(); #endif + if (!ecore_init ()) + { + printf ("Cannot init ecore; %d\n", 1); + exit (-1); + } + espik_config_init (); if (argc < 3) @@ -80,13 +86,8 @@ int main (int argc, char **argv) printf ("user: %s\n", a_infos.client->username); printf ("real: %s\n", a_infos.client->realname); -#if 0 - if (!ecore_init ()) - { - printf ("Cannot init ecore; %d\n", 1); - exit (-1); - } +#if 0 con_sock = ecore_con_server_connect (ECORE_CON_REMOTE_SYSTEM, a_infos.server->host, @@ -118,6 +119,8 @@ int main (int argc, char **argv) ecore_main_loop_begin (); + ecore_main_fd_handler_del (fd_kb); + /* ecore_con_server_del (con_sock); */ @@ -135,13 +138,13 @@ int main (int argc, char **argv) espik_debug_print ("end"); - espik_config_shutdown (&a_infos); + espik_config_shutdown (a_infos); /* espik_con_shutdown (); */ - ecore_main_loop_quit (); +// ecore_main_loop_quit (); ecore_shutdown (); //espik_leave(); diff --git a/src/espik_config.c b/src/espik_config.c index 6d6fc67..0cbc0d3 100644 --- a/src/espik_config.c +++ b/src/espik_config.c @@ -40,17 +40,15 @@ t_userinfo* espik_user_sysinfo_get () //u_info->nickname = pw->pw_name; u_info->nickname = strdup ("beber_espik_test"); - u_info->username = pw->pw_name; + u_info->username = strdup (pw->pw_name); if (! (pw->pw_gecos[0]) ) u_info->realname = strdup ("espik user"); else - u_info->realname = pw->pw_gecos; + u_info->realname = strdup (pw->pw_gecos); - /* FIXME: segv + /* FIXME: segv */ free (pw); - */ - espik_leave(); return (u_info); @@ -106,15 +104,15 @@ void espik_config_init () espik_leave(); } -void espik_config_shutdown (t_info *s_info) +void espik_config_shutdown (t_info s_info) { - free (s_info->server->host); + free (s_info.server->host); // free (s_info->server->port); - free (s_info->server); - free (s_info->client->nickname); - free (s_info->client->username); - free (s_info->client->realname); - free (s_info->client); + free (s_info.server); + free (s_info.client->nickname); + free (s_info.client->username); + free (s_info.client->realname); + free (s_info.client); // free (s_info); ecore_config_save(); diff --git a/src/espik_config.h b/src/espik_config.h index e454cfd..f9bb213 100644 --- a/src/espik_config.h +++ b/src/espik_config.h @@ -10,7 +10,7 @@ void espik_config_default_set (); void espik_config_init (); void espik_config_get (t_info*); void espik_config_set (t_info); -void espik_config_shutdown (t_info *s_info); +void espik_config_shutdown (t_info); #define ESPIK_CONFIG_VERSION 1 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++) { -- cgit v1.2.3