-/* IRCEvents.c - NeonServ v5.4
+/* IRCEvents.c - NeonServ v5.5
* Copyright (C) 2011-2012 Philipp Kreil (pk910)
*
* This program is free software: you can redistribute it and/or modify
struct binding *next;
};
-static void **binds;
+static void **binds = NULL;
#define BIND_TYPE_JOIN 0
#define BIND_TYPE_NICK 1
#define BIND_TYPE_PART 2
#define BIND_TYPE_REGISTERED 16
#define BIND_TYPE_FREEUSER 17
#define BIND_TYPE_FREECHAN 18
+#define BIND_TYPE_RELOAD 19
-#define TOTAL_BIND_TYPES 19
+#define TOTAL_BIND_TYPES 20
void init_bind() {
+ if(binds)
+ return;
binds = calloc(TOTAL_BIND_TYPES, sizeof(*binds));
}
}
}
free(binds);
+ binds = NULL;
}
void unregister_module_events(int module_id) {
FUNC_BIND(freechan, freechan_func_t, BIND_TYPE_FREECHAN)
FUNC_UNBIND(freechan, freechan_func_t, BIND_TYPE_FREECHAN)
FUNC_EVENT(freechan, freechan_func_t, BIND_TYPE_FREECHAN, (struct ChanNode *chan), (chan))
+
+FUNC_BIND(reload, reload_func_t, BIND_TYPE_RELOAD)
+FUNC_UNBIND(reload, reload_func_t, BIND_TYPE_RELOAD)
+FUNC_EVENT(reload, reload_func_t, BIND_TYPE_RELOAD, (int initialization), (initialization))