diff options
Diffstat (limited to 'src/core')
| -rw-r--r-- | src/core/os_ignore.c | 88 |
1 files changed, 16 insertions, 72 deletions
diff --git a/src/core/os_ignore.c b/src/core/os_ignore.c index 7b65a938d..6ae5ad16f 100644 --- a/src/core/os_ignore.c +++ b/src/core/os_ignore.c @@ -18,8 +18,6 @@ int do_ignorelist(User * u); void myOperServHelp(User * u); int do_ignoreuser(User * u); -int do_clearignore(User * u); -void delete_ignore(const char *nick); /** * Create the command, and tell anope about it. @@ -79,7 +77,6 @@ int do_ignoreuser(User * u) } if (!stricmp(cmd, "ADD")) { - char *time = strtok(NULL, " "); char *nick = strtok(NULL, " "); char *rest = strtok(NULL, ""); @@ -103,101 +100,48 @@ int do_ignoreuser(User * u) notice_lang(s_OperServ, u, OPER_IGNORE_PERM_DONE, nick); } else { add_ignore(nick, t); - notice_lang(s_OperServ, u, OPER_IGNORE_TIME_DONE, nick, - time); + notice_lang(s_OperServ, u, OPER_IGNORE_TIME_DONE, nick, time); } } } else if (!stricmp(cmd, "LIST")) { do_ignorelist(u); - } - else if (!stricmp(cmd, "DEL")) { + } else if (!stricmp(cmd, "DEL")) { char *nick = strtok(NULL, " "); if (!nick) { notice_lang(s_OperServ, u, OPER_IGNORE_SYNTAX); } else { - if (get_ignore(nick) == 0) { - notice_lang(s_OperServ, u, OPER_IGNORE_LIST_NOMATCH, nick); - return MOD_CONT; - } else { - delete_ignore(nick); + if (delete_ignore(nick)) { notice_lang(s_OperServ, u, OPER_IGNORE_DEL_DONE, nick); + return MOD_CONT; } + notice_lang(s_OperServ, u, OPER_IGNORE_LIST_NOMATCH, nick); } } else if (!stricmp(cmd, "CLEAR")) { - do_clearignore(u); - + clear_ignores(); + notice_lang(s_OperServ, u, OPER_IGNORE_LIST_CLEARED); + return MOD_CONT; } else notice_lang(s_OperServ, u, OPER_IGNORE_SYNTAX); + return MOD_CONT; } /* shows the Services ignore list */ - int do_ignorelist(User * u) { - int sent_header = 0; IgnoreData *id; - int i; - for (i = 0; i < 256; i++) { - for (id = ignore[i]; id; id = id->next) { - if (!sent_header) { - notice_lang(s_OperServ, u, OPER_IGNORE_LIST); - sent_header = 1; - } - notice_user(s_OperServ, u, "%s", id->who); - } - } - if (!sent_header) + if (!ignore) { notice_lang(s_OperServ, u, OPER_IGNORE_LIST_EMPTY); - return MOD_CONT; -} - -/* deletes a nick from the ignore list */ - -void delete_ignore(const char *nick) -{ - IgnoreData *ign, *prev; - IgnoreData **whichlist; - - if (!nick || !*nick) { - return; - } - - whichlist = &ignore[tolower(nick[0])]; - - for (ign = *whichlist, prev = NULL; ign; prev = ign, ign = ign->next) { - if (stricmp(ign->who, nick) == 0) - break; + return MOD_CONT; } - /* If the ignore was not found, bail out -GD */ - if (!ign) - return; - if (prev) - prev->next = ign->next; - else - *whichlist = ign->next; - free(ign); - ign = NULL; -} -/**************************************************************************/ -/* Cleares the Services ignore list */ + notice_lang(s_OperServ, u, OPER_IGNORE_LIST); + for (id = ignore; id; id = id->next) + notice_user(s_OperServ, u, "%s", id->mask); -int do_clearignore(User * u) -{ - IgnoreData *id = NULL, *next = NULL; - int i; - for (i = 0; i < 256; i++) { - for (id = ignore[i]; id; id = next) { - next = id->next; - free(id); - if (!next) { - ignore[i] = NULL; - } - } - } - notice_lang(s_OperServ, u, OPER_IGNORE_LIST_CLEARED); return MOD_CONT; } + +/* EOF */ |
