-typedef void (*server_link_func_t) (struct server *server);
-void reg_server_link_func(server_link_func_t handler);
-
-typedef int (*new_user_func_t) (struct userNode *user);
-void reg_new_user_func(new_user_func_t handler);
-typedef void (*del_user_func_t) (struct userNode *user, struct userNode *killer, const char *why);
-void reg_del_user_func(del_user_func_t handler);
-void unreg_del_user_func(del_user_func_t handler);
+typedef int (*server_link_func_t) (struct server *server, void *extra);
+void reg_server_link_func(server_link_func_t handler, void *extra);
+void call_server_link_funcs(struct server *server);
+
+typedef int (*new_user_func_t) (struct userNode *user, void *extra);
+void reg_new_user_func(new_user_func_t handler, void *extra);
+void call_new_user_funcs(struct userNode *user);
+typedef void (*del_user_func_t) (struct userNode *user, struct userNode *killer, const char *why, void *extra);
+void reg_del_user_func(del_user_func_t handler, void *extra);
+void call_del_user_funcs(struct userNode *user, struct userNode *killer, const char *why);
+void unreg_del_user_func(del_user_func_t handler, void *extra);