#include #include #include #include #include #include #include "espik_global.h" #include "espik_net.h" #include "espik_common_handler.h" #include "espik_error.h" #include "espik_debug.h" #include "espik.h" typedef int (*Handler_Func) (void* data, int ev_type, void* ev); static int ret; /* For debug */ static char connected = 0; Ecore_Con_Server* con_sock; void espik_con_init (t_info serv_info) { int nb_launch; nb_launch = ecore_con_init (); /* espik_debug_printf ("nb_launch = %d", nb_launch); */ con_sock = ecore_con_server_connect (ECORE_CON_REMOTE_SYSTEM, serv_info.server->host, (int)serv_info.server->port, NULL); if (!con_sock) { espik_debug_print ("ecore_con_server_connect failed (ECORE_CON_REMOTE_SYSTEM)"); exit (-1); } if (! (ecore_event_handler_add (ECORE_CON_EVENT_SERVER_DATA, (Handler_Func) server_data, NULL))) { espik_debug_print ("ecore_event_handler_add (ECORE_CON_EVENT_SERVER_DATA)"); exit (-1); } if (! (ecore_event_handler_add (ECORE_CON_EVENT_SERVER_ADD, (Handler_Func) espik_con_up, NULL))) { espik_debug_print ("ecore_event_handler_add (ECORE_CON_EVENT_SERVER_ADD)"); exit (-1); } if (! (ecore_event_handler_add (ECORE_CON_EVENT_SERVER_DEL, (Handler_Func) espik_con_shutdown, NULL))) { espik_debug_print ("ecore_event_handler_add (ECORE_CON_EVENT_SERVER_DEL)"); exit (-1); } } void espik_con_up() { printf ("Connected\n"); connected++; } void espik_con_shutdown () { /* espik_debug_print ("> espik_con_shutdown"); */ if (!connected) espik_debug_print ("Unable to connect to server"); ecore_con_server_del (con_sock); ecore_con_shutdown (); /* espik_debug_print ("< espik_con_shutdown"); */ ecore_main_loop_quit (); } void espik_raw_send (char *msg) { int len; char* out; len = strlen (msg) + 3; out = malloc (sizeof (char) * len); snprintf (out, len, "%s\r\n", msg); espik_debug_print ("msg: %s\nout: %s", msg, out); /* printf ("out[len-3]: 0x%X\n", out[len - 3]); printf ("out[len-2]: 0x%X\n", out[len - 2]); printf ("out[len-1]: 0x%X\n", out[len - 1]); */ ret = ecore_con_server_send (con_sock, out, strlen (out)); /* espik_debug_print ("%d", ret); */ free (out); }