X-Git-Url: http://git.pk910.de/?p=NeonServV5.git;a=blobdiff_plain;f=src%2Fmodules.c;h=4de2468fb237d819ffc5bda26f62a91a301ea30e;hp=ba3a43a6b8fb32937ad4665bc464d74bb3de053b;hb=c8e7ce1c57afaebf3996a6712c45f4c89c34ba44;hpb=ff689d90ad836cbbb3f1b773618ce249377bc631 diff --git a/src/modules.c b/src/modules.c index ba3a43a..4de2468 100644 --- a/src/modules.c +++ b/src/modules.c @@ -45,6 +45,9 @@ /* 181-183 */ #include "WHOHandler.h" /* 184-188 */ #include "version.h" /* 189 */ /* modules.h */ +/* 190 */ /* UserNode.h */ +/* 191-193 */ #include "ModuleFunctions.h" +/* 194 */ /* bots.h */ #define Function void * @@ -110,8 +113,8 @@ void *global_functions[] = { /* 054 */ (Function) unbind_nick, /* 055 */ (Function) bind_part, /* 056 */ (Function) unbind_part, -/* 057 */ (Function) bind_quit, -/* 058 */ (Function) unbind_quit, +/* 057 */ (Function) NULL, /* deprecated */ +/* 058 */ (Function) NULL, /* deprecated */ /* 059 */ (Function) bind_kick, /* 060 */ (Function) unbind_kick, /* 061 */ (Function) bind_topic, @@ -183,7 +186,7 @@ void *global_functions[] = { /* 120 */ (Function) find_botwise_cmd_binding, /* 121 */ (Function) bind_botwise_unbound_required_functions, /* 122 */ (Function) find_cmd_function, -/* 123 */ (Function) getTextBot, +/* 123 */ (Function) NULL, /* deprecated */ /* 124 */ (Function) register_command_alias, /* 125 */ (Function) getAllBinds, /* 126 */ (Function) createModeNode, @@ -249,7 +252,12 @@ void *global_functions[] = { /* 186 */ (Function) get_revision, /* 187 */ (Function) get_codelines, /* 188 */ (Function) get_patchlevel, -/* 189 */ (Function) get_module_name +/* 189 */ (Function) get_module_name, +/* 190 */ (Function) isUserModeSet, +/* 191 */ (Function) module_global_cmd_register_neonbackup, +/* 192 */ (Function) module_global_cmd_unregister_neonbackup, +/* 193 */ (Function) module_neonbackup_recover_chan, +/* 194 */ (Function) requestInvite }; static int module_id_counter = 1; @@ -346,6 +354,7 @@ struct ModuleInfo *loadModule(char *name) { modinfo->state = 0; modinfo->next = modules; modules = modinfo; + scan_module(modinfo); return modinfo; } @@ -386,6 +395,7 @@ int ext_unload_module(char *name) { unregister_module_hooks(old_modinfo->module_id); ((void (*)(int)) old_modinfo->stopfunc)(MODSTATE_STARTSTOP); closemodule(old_modinfo->module); + free_module_functions(old_modinfo); free(old_modinfo->name); free(old_modinfo); return 1; @@ -408,6 +418,7 @@ int ext_reload_module(char *name) { unregister_module_hooks(old_modinfo->module_id); ((void (*)(int)) old_modinfo->stopfunc)(MODSTATE_RELOAD); closemodule(old_modinfo->module); + free_module_functions(old_modinfo); free(old_modinfo->name); free(old_modinfo); break; @@ -454,6 +465,7 @@ void stop_modules() { unregister_module_hooks(modinfo->module_id); ((void (*)(int)) modinfo->stopfunc)(MODSTATE_STARTSTOP); closemodule(modinfo->module); + free_module_functions(modinfo); free(modinfo->name); free(modinfo); } @@ -464,6 +476,7 @@ static void unregister_module_hooks(int module_id) { unregister_module_commands(module_id); unregister_module_events(module_id); unregister_module_timers(module_id); + } int module_loaded(int module_id) { @@ -485,3 +498,5 @@ char *get_module_name(int module_id) { } return NULL; } + +