From: Paul Date: Sun, 4 Jan 2009 21:34:55 +0000 (+0000) Subject: fix some format string errors and dergister some hooks, also do some (pointless)... X-Git-Url: https://jfr.im/git/irc/quakenet/newserv.git/commitdiff_plain/f074aada7209dbc250e9024f686dbf58c10eaa7c fix some format string errors and dergister some hooks, also do some (pointless) freeing --HG-- branch : paul --- diff --git a/core/error.c b/core/error.c index 04c99875..edd98699 100644 --- a/core/error.c +++ b/core/error.c @@ -48,6 +48,11 @@ void init_logfile() { registerhook(HOOK_CORE_SIGUSR1, reopen_logfile); } +void fini_logfile() { + deregisterhook(HOOK_CORE_SIGUSR1, reopen_logfile); + fclose(logfile); +} + void Error(char *source, int severity, char *reason, ... ) { char buf[512]; va_list va; diff --git a/core/events-epoll.c b/core/events-epoll.c index 3cb3a7a1..01364a36 100644 --- a/core/events-epoll.c +++ b/core/events-epoll.c @@ -52,6 +52,11 @@ void inithandlers() { registerhook(HOOK_CORE_STATSREQUEST, &eventstats); } +void finihandlers() { + deregisterhook(HOOK_CORE_STATSREQUEST, &eventstats); + free(eventhandlers); +} + /* * checkindex(): * Given the number of a new file descriptor, makes sure that the array diff --git a/core/events-kqueue.c b/core/events-kqueue.c index 083e551d..e0cc379a 100644 --- a/core/events-kqueue.c +++ b/core/events-kqueue.c @@ -54,6 +54,11 @@ void inithandlers() { registerhook(HOOK_CORE_STATSREQUEST, &eventstats); } +void finihandlers() { + deregisterhook(HOOK_CORE_STATSREQUEST, &eventstats); +} + + /* * checkindex(): * Given the number of a new file descriptor, makes sure that the array diff --git a/core/events-poll.c b/core/events-poll.c index 51ca8478..7d939b0b 100644 --- a/core/events-poll.c +++ b/core/events-poll.c @@ -51,6 +51,12 @@ void inithandlers() { registerhook(HOOK_CORE_STATSREQUEST, &eventstats); } +void finihandlers() { + deregisterhook(HOOK_CORE_STATSREQUEST, &eventstats); + free(eventfds); + free(eventhandlers); +} + /* * checkindex(): * Given the number of a new file descriptor, makes sure that the arrays diff --git a/core/main.c b/core/main.c index ec6f4abc..a2dbdd7a 100644 --- a/core/main.c +++ b/core/main.c @@ -65,6 +65,10 @@ int main(int argc, char **argv) { freeconfig(); finisstring(); + fini_logfile(); + finischedule(); + finihandlers(); + nsexit(); } diff --git a/core/schedule.c b/core/schedule.c index cf495e0d..e619f05e 100644 --- a/core/schedule.c +++ b/core/schedule.c @@ -36,6 +36,11 @@ void initschedule() { events=(schedule **)malloc(INITSCHEDSIZE*sizeof(schedule *)); } +void finischedule() { + deregisterhook(HOOK_CORE_STATSREQUEST, &schedulestats); + free(events); +} + void schedule_heapify(int index) { int firstindex=index; schedule *ep; @@ -166,7 +171,7 @@ void *scheduleoneshot(time_t when, ScheduleCallback callback, void *arg) { insertschedule(sp); #ifdef SCHEDDEBUG - Error("schedule",ERR_DEBUG,"scheduleoneshot: (%ld, %x, %x) = %x",when, callback, arg, sp); + Error("schedule",ERR_DEBUG,"scheduleoneshot: (%ld, %x, %x) = %x",when, (unsigned int)callback, (unsigned int)arg, (unsigned int)sp); #endif return (void *)sp; @@ -201,7 +206,7 @@ void deleteschedule(void *sch, ScheduleCallback callback, void *arg) { * pass it in here for an O(1) *cough* O(lg n) delete */ #ifdef SCHEDDEBUG - Error("schedule",ERR_DEBUG,"deleteschedule(%x,%x,%x)",sch,callback, arg); + Error("schedule",ERR_DEBUG,"deleteschedule(%x,%x,%x)",(unsigned int)sch,(unsigned int)callback, (unsigned int)arg); #endif if (sch) { @@ -296,7 +301,7 @@ void doscheduledevents(time_t when) { break; } #ifdef SCHEDDEBUG - Error("schedule",ERR_DEBUG,"exec schedule:(%x, %x, %x)", sp, sc, arg); + Error("schedule",ERR_DEBUG,"exec schedule:(%x, %x, %x)", (unsigned int)sp, (unsigned int)sc, (unsigned int)arg); #endif (sc)(arg); #ifdef SCHEDDEBUG