diff options
author | Robin Burchell w00t@inspircd.org <Robin Burchell w00t@inspircd.org@5417fbe8-f217-4b02-8779-1006273d7864> | 2008-11-09 03:03:12 +0000 |
---|---|---|
committer | Robin Burchell w00t@inspircd.org <Robin Burchell w00t@inspircd.org@5417fbe8-f217-4b02-8779-1006273d7864> | 2008-11-09 03:03:12 +0000 |
commit | d35316711894c64f781d923a88243da5757cc2ab (patch) | |
tree | 7f1d8545a6806c798fcd41c16878b6319ed61fc0 /src/modules.c | |
parent | b7d84f0b68ec15e80d2b69e63306e85443e24648 (diff) |
Add module.cpp and modulemanager.cpp.
- module.cpp: contains (new/"good") code relating to modules. Crappy/stuff to be replaced will stay in modules.c
- modulemanager.cpp: contains stuff *manipulating* modules.
git-svn-id: http://anope.svn.sourceforge.net/svnroot/anope/trunk@1611 5417fbe8-f217-4b02-8779-1006273d7864
Diffstat (limited to 'src/modules.c')
-rw-r--r-- | src/modules.c | 166 |
1 files changed, 0 insertions, 166 deletions
diff --git a/src/modules.c b/src/modules.c index 3de81cec0..88e788aa7 100644 --- a/src/modules.c +++ b/src/modules.c @@ -1,4 +1,3 @@ - /* Modular support * * (C) 2003-2008 Anope Team @@ -277,169 +276,6 @@ void modules_unload_all(bool fini, bool unload_proto) } } -Module::Module(const std::string &mname, const std::string &creator) -{ - this->name = mname; /* Our name */ - this->filename = NULL; - this->nickHelp = NULL; - this->chanHelp = NULL; - this->memoHelp = NULL; - this->botHelp = NULL; - this->operHelp = NULL; - this->hostHelp = NULL; - this->helpHelp = NULL; - this->type = THIRD; - this->handle = NULL; - - for (int i = 0; i < NUM_LANGS; i++) - { - this->lang[i].argc = 0; - } -} - -Module::~Module() -{ - int i = 0; - mod_current_module = this; - - for (i = 0; i < NUM_LANGS; i++) - moduleDeleteLanguage(i); - - if (this->filename) - { - remove(this->filename); - free(this->filename); - } - - if (this->handle) - { - if ((ano_modclose(this->handle)) != 0) - alog("%s", ano_moderr()); - } - - int idx; - CommandHash *current = NULL; - MessageHash *mcurrent = NULL; - EvtMessageHash *ecurrent = NULL; - EvtHookHash *ehcurrent = NULL; - - Command *c; - Message *msg; - EvtMessage *eMsg; - EvtHook *eHook; - int status = 0; - - /* Kill any active callbacks this module has */ - moduleCallBackPrepForUnload(this->name.c_str()); - - /* Remove any stored data this module has */ - moduleDelAllDataMod(this); - - /** - * ok, im going to walk every hash looking for commands we own, now, not exactly elegant or efficiant :) - **/ - for (idx = 0; idx < MAX_CMD_HASH; idx++) { - for (current = HS_cmdTable[idx]; current; current = current->next) { - for (c = current->c; c; c = c->next) { - if ((c->mod_name) && (strcmp(c->mod_name, this->name.c_str()) == 0)) { - this->DelCommand(HOSTSERV, c->name); - } - } - } - - for (current = BS_cmdTable[idx]; current; current = current->next) { - for (c = current->c; c; c = c->next) { - if ((c->mod_name) && (strcmp(c->mod_name, this->name.c_str()) == 0)) { - this->DelCommand(BOTSERV, c->name); - } - } - } - - for (current = MS_cmdTable[idx]; current; current = current->next) { - for (c = current->c; c; c = c->next) { - if ((c->mod_name) && (strcmp(c->mod_name, this->name.c_str()) == 0)) { - this->DelCommand(MEMOSERV, c->name); - } - } - } - - for (current = NS_cmdTable[idx]; current; current = current->next) { - for (c = current->c; c; c = c->next) { - if ((c->mod_name) && (strcmp(c->mod_name, this->name.c_str()) == 0)) { - this->DelCommand(NICKSERV, c->name); - } - } - } - - for (current = CS_cmdTable[idx]; current; current = current->next) { - for (c = current->c; c; c = c->next) { - if ((c->mod_name) && (strcmp(c->mod_name, this->name.c_str()) == 0)) { - this->DelCommand(CHANSERV, c->name); - } - } - } - - for (current = HE_cmdTable[idx]; current; current = current->next) { - for (c = current->c; c; c = c->next) { - if ((c->mod_name) && (strcmp(c->mod_name, this->name.c_str()) == 0)) { - this->DelCommand(HELPSERV, c->name); - } - } - } - - for (current = OS_cmdTable[idx]; current; current = current->next) { - for (c = current->c; c; c = c->next) { - if ((c->mod_name) && (stricmp(c->mod_name, this->name.c_str()) == 0)) { - this->DelCommand(OPERSERV, c->name); - } - } - } - - for (mcurrent = IRCD[idx]; mcurrent; mcurrent = mcurrent->next) { - for (msg = mcurrent->m; msg; msg = msg->next) { - if ((msg->mod_name) - && (stricmp(msg->mod_name, this->name.c_str()) == 0)) { - moduleDelMessage(msg->name); - } - } - } - - for (ecurrent = EVENT[idx]; ecurrent; ecurrent = ecurrent->next) { - for (eMsg = ecurrent->evm; eMsg; eMsg = eMsg->next) { - if ((eMsg->mod_name) - && (stricmp(eMsg->mod_name, this->name.c_str()) == 0)) { - status = delEventHandler(EVENT, eMsg, this->name.c_str()); - } - } - } - for (ehcurrent = EVENTHOOKS[idx]; ehcurrent; - ehcurrent = ehcurrent->next) { - for (eHook = ehcurrent->evh; eHook; eHook = eHook->next) { - if ((eHook->mod_name) - && (stricmp(eHook->mod_name, this->name.c_str()) == 0)) { - status = delEventHook(EVENTHOOKS, eHook, this->name.c_str()); - } - } - } - - } -} - -void Module::SetType(MODType type) -{ - this->type = type; -} - -void Module::SetVersion(const std::string &version) -{ - this->version = version; -} - -void Module::SetAuthor(const std::string &author) -{ - this->author = author; -} - void Module::InsertLanguage(int langNumber, int ac, const char **av) { int i; @@ -459,8 +295,6 @@ void Module::InsertLanguage(int langNumber, int ac, const char **av) } } - - /** * Add the module to the list of currently loaded modules. * @param m the currently loaded module |