Merge pull request #329 from edk0/reload-by-path
Reload modules by path
This commit is contained in:
commit
17dc265c9d
2 changed files with 8 additions and 1 deletions
|
@ -45,6 +45,7 @@ struct module
|
|||
lt_dlhandle address;
|
||||
int core; /* This is int for backwards compat reasons */
|
||||
int origin; /* Ditto */
|
||||
char *path;
|
||||
int mapi_version;
|
||||
void *mapi_header; /* actually struct mapi_mheader_av<mapi_version> */
|
||||
rb_dlink_node node;
|
||||
|
|
|
@ -423,6 +423,7 @@ unload_one_module(const char *name, bool warn)
|
|||
|
||||
rb_dlinkDelete(&mod->node, &module_list);
|
||||
rb_free(mod->name);
|
||||
rb_free(mod->path);
|
||||
rb_free(mod);
|
||||
|
||||
if(warn)
|
||||
|
@ -677,6 +678,7 @@ load_a_module(const char *path, bool warn, int origin, bool core)
|
|||
mod->mapi_header = mapi_version;
|
||||
mod->mapi_version = MAPI_VERSION(*mapi_version);
|
||||
mod->origin = origin;
|
||||
mod->path = rb_strdup(path);
|
||||
rb_dlinkAdd(mod, &mod->node, &module_list);
|
||||
|
||||
if(warn)
|
||||
|
@ -715,6 +717,7 @@ modules_do_reload(void *info_)
|
|||
int check_core;
|
||||
int origin;
|
||||
char *m_bn = rb_basename(info->module);
|
||||
char *path;
|
||||
struct Client *source_p = find_id(info->id);
|
||||
|
||||
if((mod = findmodule_byname(m_bn)) == NULL)
|
||||
|
@ -727,6 +730,7 @@ modules_do_reload(void *info_)
|
|||
|
||||
origin = mod->origin;
|
||||
check_core = mod->core;
|
||||
path = rb_strdup(mod->path);
|
||||
|
||||
mod_remember_clicaps();
|
||||
|
||||
|
@ -735,10 +739,11 @@ modules_do_reload(void *info_)
|
|||
if (source_p) sendto_one_notice(source_p, ":Module %s is not loaded", m_bn);
|
||||
rb_free(info);
|
||||
rb_free(m_bn);
|
||||
rb_free(path);
|
||||
return;
|
||||
}
|
||||
|
||||
if((load_one_module(m_bn, origin, check_core) == false) && check_core)
|
||||
if((load_a_module(path, true, origin, check_core) == false) && check_core)
|
||||
{
|
||||
sendto_realops_snomask(SNO_GENERAL, L_NETWIDE,
|
||||
"Error reloading core module: %s: terminating ircd", m_bn);
|
||||
|
@ -750,6 +755,7 @@ modules_do_reload(void *info_)
|
|||
|
||||
rb_free(info);
|
||||
rb_free(m_bn);
|
||||
rb_free(path);
|
||||
}
|
||||
|
||||
void
|
||||
|
|
Loading…
Reference in a new issue