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:
parent
75d7e1b0bb
commit
d1e60a3b8f
@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user