Merge branch 'development'
[NeonServV5.git] / src / timeq.c
index b71bb7569f42480450017870cb693b063f49c3e0..ec9ea3e4017803440e5c5c63637e9b8aaa7ffbab 100644 (file)
@@ -1,4 +1,4 @@
-/* timeq.c - NeonServ v5.5
+/* timeq.c - NeonServ v5.6
  * Copyright (C) 2011-2012  Philipp Kreil (pk910)
  * 
  * This program is free software: you can redistribute it and/or modify
@@ -17,6 +17,8 @@
 
 #include "timeq.h"
 #include "IOHandler.h"
+#include "tools.h"
+#include "log.h"
 
 static struct timeq_entry *timeq_events;
 #ifdef HAVE_THREADS
@@ -28,6 +30,10 @@ static IOHANDLER_CALLBACK(timeq_callback) {
     struct timeq_entry *entry = event->iofd->data;
     switch(event->type) {
     case IOEVENT_TIMEOUT:
+        if(entry->name) {
+            free(entry->name);
+            entry->name = NULL;
+        }
         entry->callback(entry->data);
         entry->iofd = NULL;
         timeq_del(entry);
@@ -46,7 +52,7 @@ struct timeq_entry* timeq_uadd(int useconds, int module_id, timeq_callback_t *ca
     struct timeq_entry *entry = malloc(sizeof(*entry));
     if (!entry)
     {
-        perror("malloc() failed");
+        printf_log("main", LOG_ERROR, "%s:%d malloc() failed", __FILE__, __LINE__);
         return NULL;
     }
     #ifdef HAVE_THREADS