diff options
author | rburchell <rburchell@5417fbe8-f217-4b02-8779-1006273d7864> | 2008-11-15 17:56:39 +0000 |
---|---|---|
committer | rburchell <rburchell@5417fbe8-f217-4b02-8779-1006273d7864> | 2008-11-15 17:56:39 +0000 |
commit | 8784fa995e7e9aaf2f1ecf9f40daef1172580ccd (patch) | |
tree | a0fe795b748b4204c8f3c503810f6ff9428d5604 /src | |
parent | b2b0e1d235686ff8389d2930a53366abefd1bb9d (diff) |
Remove moduleAddData|GetData|DelData and all associated mess. Extensible base replaces all this in a much cleaner and more transparent fashion.
git-svn-id: http://anope.svn.sourceforge.net/svnroot/anope/trunk@1706 5417fbe8-f217-4b02-8779-1006273d7864
Diffstat (limited to 'src')
-rw-r--r-- | src/chanserv.c | 2 | ||||
-rw-r--r-- | src/core/ms_del.c | 1 | ||||
-rw-r--r-- | src/memoserv.c | 2 | ||||
-rw-r--r-- | src/module.cpp | 3 | ||||
-rw-r--r-- | src/modules.c | 230 | ||||
-rw-r--r-- | src/nickserv.c | 3 | ||||
-rw-r--r-- | src/users.c | 3 |
7 files changed, 0 insertions, 244 deletions
diff --git a/src/chanserv.c b/src/chanserv.c index 44b2a690a..3327f5b06 100644 --- a/src/chanserv.c +++ b/src/chanserv.c @@ -482,7 +482,6 @@ void load_cs_dbase(void) memos->time = tmp32; SAFE(read = read_buffer(memos->sender, f)); SAFE(read_string(&memos->text, f)); - memos->moduleData = NULL; } } @@ -1779,7 +1778,6 @@ int delchan(ChannelInfo * ci) for (i = 0; i < ci->memos.memocount; i++) { if (ci->memos.memos[i].text) free(ci->memos.memos[i].text); - moduleCleanStruct(&ci->memos.memos[i].moduleData); } free(ci->memos.memos); } diff --git a/src/core/ms_del.c b/src/core/ms_del.c index 1f30eb25e..0924dd7d8 100644 --- a/src/core/ms_del.c +++ b/src/core/ms_del.c @@ -136,7 +136,6 @@ int do_del(User * u) /* Delete all memos. */ for (i = 0; i < mi->memocount; i++) { free(mi->memos[i].text); - moduleCleanStruct(&mi->memos[i].moduleData); } free(mi->memos); mi->memos = NULL; diff --git a/src/memoserv.c b/src/memoserv.c index 0054f3f9c..d9bd61b93 100644 --- a/src/memoserv.c +++ b/src/memoserv.c @@ -256,7 +256,6 @@ void memo_send(User * u, char *name, char *text, int z) mi->memos = (Memo *)srealloc(mi->memos, sizeof(Memo) * mi->memocount); m = &mi->memos[mi->memocount - 1]; strscpy(m->sender, source, NICKMAX); - m->moduleData = NULL; if (mi->memocount > 1) { m->number = m[-1].number + 1; if (m->number < 1) { @@ -346,7 +345,6 @@ int delmemo(MemoInfo * mi, int num) break; } if (i < mi->memocount) { - moduleCleanStruct(&mi->memos[i].moduleData); free(mi->memos[i].text); /* Deallocate memo text memory */ mi->memocount--; /* One less memo now */ if (i < mi->memocount) /* Move remaining memos down a slot */ diff --git a/src/module.cpp b/src/module.cpp index 5676b16fb..d0929bfdd 100644 --- a/src/module.cpp +++ b/src/module.cpp @@ -86,9 +86,6 @@ Module::~Module() /* 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 :) **/ diff --git a/src/modules.c b/src/modules.c index 3d9355944..7120d5c4e 100644 --- a/src/modules.c +++ b/src/modules.c @@ -1128,236 +1128,6 @@ void moduleDisplayHelp(int service, User * u) } /** - * Add module data to a struct. - * This allows module coders to add data to an existing struct - * @param md The module data for the struct to be used - * @param key The Key for the key/value pair - * @param value The value for the key/value pair, this is what will be stored for you - * @return MOD_ERR_OK will be returned on success - **/ -int moduleAddData(ModuleData ** md, const char *key, char *value) -{ - ModuleData *newData = NULL; - - if (mod_current_module_name == NULL) { - alog("moduleAddData() called with mod_current_module_name being NULL"); - if (debug) - do_backtrace(0); - } - - if (!key || !value) { - alog("A module (%s) tried to use ModuleAddData() with one or more NULL arguments... returning", mod_current_module_name); - return MOD_ERR_PARAMS; - } - - moduleDelData(md, key); /* Remove any existing module data for this module with the same key */ - - newData = (ModuleData *)malloc(sizeof(ModuleData)); - if (!newData) { - return MOD_ERR_MEMORY; - } - - newData->moduleName = sstrdup(mod_current_module_name); - newData->key = sstrdup(key); - newData->value = sstrdup(value); - newData->next = *md; - *md = newData; - - return MOD_ERR_OK; -} - -/** - * Returns the value from a key/value pair set. - * This allows module coders to retrive any data they have previuosly stored in any given struct - * @param md The module data for the struct to be used - * @param key The key to find the data for - * @return the value paired to the given key will be returned, or NULL - **/ -char *moduleGetData(ModuleData ** md, const char *key) -{ - /* See comment in moduleAddData... -GD */ - char *mod_name = sstrdup(mod_current_module_name); - ModuleData *current = *md; - - if (mod_current_module_name == NULL) { - alog("moduleGetData() called with mod_current_module_name being NULL"); - if (debug) - do_backtrace(0); - } - - if (debug) { - alog("debug: moduleGetData %p : key %s", (void *) md, key); - alog("debug: Current Module %s", mod_name); - } - - while (current) { - if ((stricmp(current->moduleName, mod_name) == 0) - && (stricmp(current->key, key) == 0)) { - free(mod_name); - return sstrdup(current->value); - } - current = current->next; - } - free(mod_name); - return NULL; -} - -/** - * Delete the key/value pair indicated by "key" for the current module. - * This allows module coders to remove a previously stored key/value pair. - * @param md The module data for the struct to be used - * @param key The key to delete the key/value pair for - **/ -void moduleDelData(ModuleData ** md, const char *key) -{ - /* See comment in moduleAddData... -GD */ - char *mod_name = sstrdup(mod_current_module_name); - ModuleData *current = *md; - ModuleData *prev = NULL; - ModuleData *next = NULL; - - if (mod_current_module_name == NULL) { - alog("moduleDelData() called with mod_current_module_name being NULL"); - if (debug) - do_backtrace(0); - } - - if (key) { - while (current) { - next = current->next; - if ((stricmp(current->moduleName, mod_name) == 0) - && (stricmp(current->key, key) == 0)) { - if (prev) { - prev->next = current->next; - } else { - *md = current->next; - } - free(current->moduleName); - free(current->key); - free(current->value); - current->next = NULL; - free(current); - } else { - prev = current; - } - current = next; - } - } - free(mod_name); -} - -/** - * This will remove all data for a particular module from existing structs. - * Its primary use is modulePrepForUnload() however, based on past expericance with module coders wanting to - * do just about anything and everything, its safe to use from inside the module. - * @param md The module data for the struct to be used - **/ -void moduleDelAllData(ModuleData ** md) -{ - /* See comment in moduleAddData... -GD */ - char *mod_name = sstrdup(mod_current_module_name); - ModuleData *current = *md; - ModuleData *prev = NULL; - ModuleData *next = NULL; - - if (mod_current_module_name == NULL) { - alog("moduleDelAllData() called with mod_current_module_name being NULL"); - if (debug) - do_backtrace(0); - } - - while (current) { - next = current->next; - if ((stricmp(current->moduleName, mod_name) == 0)) { - if (prev) { - prev->next = current->next; - } else { - *md = current->next; - } - free(current->moduleName); - free(current->key); - free(current->value); - current->next = NULL; - free(current); - } else { - prev = current; - } - current = next; - } - free(mod_name); -} - -/** - * This will delete all module data used in any struct by module m. - * @param m The module to clear all data for - **/ -void moduleDelAllDataMod(Module * m) -{ - bool freeme = false; - int i, j; - User *user; - NickAlias *na; - NickCore *nc; - ChannelInfo *ci; - - if (!mod_current_module_name) { - mod_current_module_name = sstrdup(m->name.c_str()); - freeme = true; - } - - for (i = 0; i < 1024; i++) { - /* Remove the users */ - for (user = userlist[i]; user; user = user->next) { - moduleDelAllData(&user->moduleData); - } - /* Remove the nick Cores */ - for (nc = nclists[i]; nc; nc = nc->next) { - /* Remove any memo data for this nick core */ - for (j = 0; j < nc->memos.memocount; j++) { - moduleCleanStruct(&nc->memos.memos[j].moduleData); - } - } - } - - for (i = 0; i < 256; i++) { - /* Remove any chan info data */ - for (ci = chanlists[i]; ci; ci = ci->next) { - /* Remove any memo data for this nick core */ - for (j = 0; j < ci->memos.memocount; j++) { - moduleCleanStruct(&ci->memos.memos[j].moduleData); - } - } - } - - if (freeme) { - free((void *)mod_current_module_name); - mod_current_module_name = NULL; - } -} - -/** - * Remove any data from any module used in the given struct. - * Useful for cleaning up when a User leave's the net, a NickCore is deleted, etc... - * @param moduleData the moduleData struct to "clean" - **/ -void moduleCleanStruct(ModuleData ** moduleData) -{ - ModuleData *current = *moduleData; - ModuleData *next = NULL; - - while (current) { - next = current->next; - free(current->moduleName); - free(current->key); - free(current->value); - current->next = NULL; - free(current); - current = next; - } - *moduleData = NULL; -} - -/** * Check the current version of anope against a given version number * Specifiying -1 for minor,patch or build * @param major The major version of anope, the first part of the verison number diff --git a/src/nickserv.c b/src/nickserv.c index 2e1a68934..4bfbe9527 100644 --- a/src/nickserv.c +++ b/src/nickserv.c @@ -343,7 +343,6 @@ void load_old_ns_dbase(void) memos->time = tmp32; SAFE(read_buffer(memos->sender, f)); SAFE(read_string(&memos->text, f)); - memos->moduleData = NULL; } } @@ -539,7 +538,6 @@ void load_ns_dbase(void) memos->time = tmp32; SAFE(read_buffer(memos->sender, f)); SAFE(read_string(&memos->text, f)); - memos->moduleData = NULL; } } @@ -1257,7 +1255,6 @@ static int delcore(NickCore * nc) for (i = 0; i < nc->memos.memocount; i++) { if (nc->memos.memos[i].text) free(nc->memos.memos[i].text); - moduleCleanStruct(&nc->memos.memos[i].moduleData); } free(nc->memos.memos); } diff --git a/src/users.c b/src/users.c index fba9a6611..40750d221 100644 --- a/src/users.c +++ b/src/users.c @@ -43,7 +43,6 @@ User::User(const std::string &snick) na = NULL; chans = NULL; founder_chans = NULL; - moduleData = NULL; timestamp = my_signon = svid = mode = invalid_pw_time = lastmemosend = lastnickreg = lastmail = 0; strscpy(this->nick, snick.c_str(), NICKMAX); @@ -253,8 +252,6 @@ User::~User() if (this->nickTrack) free(this->nickTrack); - moduleCleanStruct(&this->moduleData); - if (debug >= 2) alog("debug: User::~User(): delete from list"); |