added events for FreeUser & FreeChan (triggered just before freeing a UserNode/ChanNode)
[NeonServV5.git] / src / IRCEvents.c
index a8239a9c420012c91cdfcd4a537c49c1bc285e9b..6d813fe9831e548bdbe2a8f5da92dc8a844c9282 100644 (file)
@@ -45,8 +45,10 @@ static void **binds;
 #define BIND_TYPE_RAW        14
 #define BIND_TYPE_BOT_READY  15
 #define BIND_TYPE_REGISTERED 16
+#define BIND_TYPE_FREEUSER   17
+#define BIND_TYPE_FREECHAN   18
 
-#define TOTAL_BIND_TYPES     17
+#define TOTAL_BIND_TYPES     19
 
 void init_bind() {
     binds = calloc(TOTAL_BIND_TYPES, sizeof(*binds));
@@ -204,3 +206,11 @@ int event_registered(struct UserNode *old_user, struct UserNode *new_user) {
     post_event(BIND_TYPE_REGISTERED);
     return ret;
 }
+
+FUNC_BIND(freeuser, freeuser_func_t, BIND_TYPE_FREEUSER)
+FUNC_UNBIND(freeuser, freeuser_func_t, BIND_TYPE_FREEUSER)
+FUNC_EVENT(freeuser, freeuser_func_t, BIND_TYPE_FREEUSER, (struct UserNode *user), (user))
+
+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))