#include #include #include #include #include /* EFL Stuff */ #include #include /* Configuration lib */ /*#include */ /* Socket lib */ #include /* List */ /* Espik Stuff */ #include "espik.h" #include "espik_global.h" #include "espik_config.h" #include "espik_irc.h" #include "espik_common_handler.h" #include "espik_net.h" #include "espik_debug.h" typedef int (*Handler_Func) (void *data, int ev_type, void *ev); /* typedef int (*Handler_Fd_Func) (void *data, Ecore_Fd_Handler * fd_handler); */ static void espik_init() { ptr_list = ecore_list_new(); } static void espik_destroy_ptr(void *ptr) { if (ptr) { espik_debug_print("Freeing data..."); free (ptr); } } void espik_free (void *ptr) { ecore_list_append (ptr_list, ptr); } /* Use to replace EOL ('\n') with NULL ('\0') */ int del_backslash (char *msg) { int i, count; espik_enter(); for (i = 0, count = 0; msg[i]; i++) { if (msg[i] == '\n') { msg[i] = '\0'; count++; } } espik_leave(); return (count); } int main (int argc, char **argv) { Ecore_Fd_Handler *fd_kb; #ifdef _ESPIK_DEBUG_ __indent_level = 0; #endif espik_enter(); printf ("Welcome to %s %s\n", APPS_NAME, ESPIK_VERSION); espik_init(); #ifdef _ESPIK_DEBUG_ //espik_debug_init(); #endif if (!ecore_init ()) { printf ("Cannot init ecore; %d\n", 1); exit (-1); } ecore_list_set_free_cb(ptr_list, espik_destroy_ptr); espik_config_init (); if (argc < 3) { printf ("Loading from conf ...\n"); espik_config_get (&a_infos); } else { printf ("Connecting to %s:%s\n", argv[1], argv[2]); a_infos.client = espik_user_sysinfo_get (); a_infos.server = espik_server_config_set (argv[1], (unsigned short)atoi (argv[2])); } espik_config_set (a_infos); printf ("host: %s\n", a_infos.server->host); printf ("port: %hd\n", a_infos.server->port); printf ("nick: %s\n", a_infos.client->nickname); printf ("user: %s\n", a_infos.client->username); printf ("real: %s\n", a_infos.client->realname); #if 0 con_sock = ecore_con_server_connect (ECORE_CON_REMOTE_SYSTEM, a_infos.server->host, (int)a_infos.server->port, NULL); if (!con_sock) { fprintf (stderr, "Baaa\n"); exit (-1); } #endif /* Handler Network & Keyboard */ fd_kb = ecore_main_fd_handler_add (STDIN_FILENO, ECORE_FD_READ, kb_get, NULL, NULL, NULL); espik_free(kb_get); if (!fd_kb) { printf ("Cannot ecore_main_fd_handler_add\n"); exit (-1); } /* ecore_event_handler_add (ECORE_CON_EVENT_SERVER_DATA, (Handler_Func) server_data, NULL); */ espik_con_init (a_infos); /* Init IRC connection */ ecore_main_loop_begin (); ecore_main_fd_handler_del (fd_kb); /* ecore_con_server_del (con_sock); free (a_infos.server->host); free (a_infos.server); free (a_infos.client->nickname); free (a_infos.client->username); free (a_infos.client->realname); free (a_infos.client); */ espik_debug_print ("end"); espik_config_shutdown (a_infos); /* espik_con_shutdown (); */ ecore_shutdown (); ecore_list_destroy(ptr_list); return (0); }