#include #include #include #include #include "espik_global.h" #include "espik_net.h" #include "espik_common_handler.h" #include "espik_error.h" #include "espik.h" #include #include 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 (); #if _ESPIK_DEBUG_ /* printf ("espik_con_init: nb_launch = %d\n", nb_launch); */ #endif con_sock = ecore_con_server_connect (ECORE_CON_REMOTE_SYSTEM, serv_info.server->host, (int)serv_info.server->port, NULL); if (!con_sock) { fprintf (stderr, "ecore_con_server_connect failed (ECORE_CON_REMOTE_SYSTEM)\n"); exit (-1); } if (! (ecore_event_handler_add (ECORE_CON_EVENT_SERVER_DATA, (Handler_Func) server_data, NULL))) { fprintf (stderr, "ecore_event_handler_add (ECORE_CON_EVENT_SERVER_DATA) failed at %s\n", __FUNCTION__); exit (-1); } if (! (ecore_event_handler_add (ECORE_CON_EVENT_SERVER_ADD, (Handler_Func) espik_con_up, NULL))) { fprintf (stderr, "ecore_event_handler_add (ECORE_CON_EVENT_SERVER_ADD) failed at %s\n", __FUNCTION__); exit (-1); } if (! (ecore_event_handler_add (ECORE_CON_EVENT_SERVER_DEL, (Handler_Func) espik_con_shutdown, NULL))) { fprintf (stderr, "ecore_event_handler_add (ECORE_CON_EVENT_SERVER_DEL) failed at %s\n", __FUNCTION__); exit (-1); } } void espik_con_up() { printf ("Connected\n"); connected = 1; } void espik_con_shutdown () { #if _ESPIK_DEBUG_ /* printf ("> espik_con_shutdown\n"); */ #endif if (!connected) fprintf (stderr, "Unable to connect to server\n"); ecore_con_server_del (con_sock); ecore_con_shutdown (); #if _ESPIK_DEBUG_ /* printf ("< espik_con_shutdown\n"); */ #endif 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); #if _ESPIK_DEBUG_ printf ("espik_raw_send:\nmsg: %s\nout: %s\n", msg, out); #endif /* 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)); #if _ESPIK_DEBUG_ /* printf ("ecore_con_server_send: %d\n", ret); */ #endif free (out); }