1
0
mirror of https://github.com/irssi/irssi.git synced 2024-08-25 04:04:18 -04:00

Disallow unloading of static modules

This commit is contained in:
Jaroslav Škarvada 2013-09-16 14:59:32 +02:00 committed by Alexander Færøy
parent 75d7e1b0bb
commit d1e60a3b8f

View File

@ -195,6 +195,8 @@ static void cmd_unload(const char *data)
MODULE_FILE_REC *file;
char *rootmodule, *submodule;
void *free_arg;
GSList *tmp;
int all_dynamic;
g_return_if_fail(data != NULL);
@ -204,14 +206,21 @@ static void cmd_unload(const char *data)
module = module_find(rootmodule);
if (module != NULL) {
if (*submodule == '\0')
module_unload(module);
if (*submodule == '\0') {
all_dynamic = 1;
for (tmp = module->files; tmp != NULL; tmp = tmp->next)
all_dynamic &= !MODULE_IS_STATIC((MODULE_FILE_REC*) tmp->data);
if (all_dynamic)
module_unload(module);
}
else {
file = module_file_find(module, submodule);
if (file != NULL)
module_file_unload(file);
if (file != NULL) {
if (!MODULE_IS_STATIC(file))
module_file_unload(file);
}
else
module = NULL;
module = NULL;
}
}