diff --git a/src/e_mod_main.c b/src/e_mod_main.c index fd7d5d0..e56dd2d 100644 --- a/src/e_mod_main.c +++ b/src/e_mod_main.c @@ -1,5 +1,5 @@ #include "e.h" - +#include "../config.h" /* module setup */ E_API E_Module_Api e_modapi = { @@ -10,7 +10,7 @@ E_API E_Module_Api e_modapi = static Evas_Object *notify, *bx; static Eina_Hash *string_hash; static int entry_counter = 0; - +static Ecore_Event_Handler *event_data, *event_error; static Ecore_Exe *keylogger; typedef struct { @@ -23,9 +23,6 @@ typedef struct { static void _del_key(const char *name) { - Evas_Object *o; - Eina_List *list; - Entry *e = eina_hash_find(string_hash, name); //something fishy is going on sometimes, then we dont even have a entry @@ -146,7 +143,7 @@ e_modapi_init(E_Module *m) { ecore_init(); - string_hash = eina_hash_string_small_new(_entry_free); + string_hash = eina_hash_string_small_new((Eina_Free_Cb)_entry_free); notify = elm_notify_add(e_comp->elm); elm_notify_allow_events_set(notify, EINA_TRUE); @@ -159,12 +156,12 @@ e_modapi_init(E_Module *m) evas_object_show(bx); { - keylogger = ecore_exe_pipe_run("/usr/local/bin/keylogger", ECORE_EXE_PIPE_WRITE | + keylogger = ecore_exe_pipe_run(MODULE_DIR"/keylogger", ECORE_EXE_PIPE_WRITE | ECORE_EXE_PIPE_READ_LINE_BUFFERED | ECORE_EXE_PIPE_READ, notify); EINA_SAFETY_ON_NULL_RETURN_VAL(keylogger, NULL); - ecore_event_handler_add(ECORE_EXE_EVENT_DATA, _msg_from_child_handler, NULL); - ecore_event_handler_add(ECORE_EXE_EVENT_ERROR, _msg_from_child_handler_error, NULL); + event_data = ecore_event_handler_add(ECORE_EXE_EVENT_DATA, _msg_from_child_handler, NULL); + event_error = ecore_event_handler_add(ECORE_EXE_EVENT_ERROR, _msg_from_child_handler_error, NULL); } return m; @@ -173,6 +170,10 @@ e_modapi_init(E_Module *m) E_API int e_modapi_shutdown(E_Module *m EINA_UNUSED) { + E_FREE_FUNC(keylogger, ecore_exe_kill); + E_FREE_FUNC(notify, evas_object_del); + E_FREE_FUNC(event_data, ecore_event_handler_del); + E_FREE_FUNC(event_error, ecore_event_handler_del); ecore_shutdown(); return 1; diff --git a/src/keylogger.c b/src/keylogger.c index dae2177..525c657 100644 --- a/src/keylogger.c +++ b/src/keylogger.c @@ -24,8 +24,6 @@ _release(const char *symbol) } int main(void) { - - int i; int number = 0; int run = 1; int default_screen; @@ -34,7 +32,6 @@ int main(void) { Window root_window; XEvent e; XDeviceKeyEvent * key; - XInputClassInfo *ip; XEventClass event_list[20]; default_display = XOpenDisplay(getenv("DISPLAY"));