diff options
Diffstat (limited to 'src/process.cpp')
-rw-r--r-- | src/process.cpp | 205 |
1 files changed, 0 insertions, 205 deletions
diff --git a/src/process.cpp b/src/process.cpp index 0f714e9f0..251ededcf 100644 --- a/src/process.cpp +++ b/src/process.cpp @@ -12,211 +12,6 @@ #include "services.h" #include "modules.h" -/*************************************************************************/ - -/* Use ignore code? */ -int allow_ignore = 1; - -/* Masks to ignore. */ -std::list<IgnoreData *> ignore; - -/*************************************************************************/ - -/** - * Add a mask/nick to the ignorelist for delta seconds. - * @param nick Nick or (nick!)user@host to add to the ignorelist. - * @param delta Seconds untill new entry is set to expire. 0 for permanent. - */ -void add_ignore(const Anope::string &nick, time_t delta) -{ - if (nick.empty()) - return; - /* If it s an existing user, we ignore the hostmask. */ - Anope::string mask; - User *u = finduser(nick); - size_t user, host; - if (u) - mask = "*!*@" + u->host; - /* Determine whether we get a nick or a mask. */ - else if ((host = nick.find('@')) != Anope::string::npos) - { - /* Check whether we have a nick too.. */ - if ((user = nick.find('!')) != Anope::string::npos) - { - /* this should never happen */ - if (user > host) - return; - mask = nick; - } - else - /* We have user@host. Add nick wildcard. */ - mask = "*!" + nick; - } - /* We only got a nick.. */ - else - mask = nick + "!*@*"; - /* Check if we already got an identical entry. */ - std::list<IgnoreData *>::iterator ign = ignore.begin(), ign_end = ignore.end(); - for (; ign != ign_end; ++ign) - if (mask.equals_ci((*ign)->mask)) - break; - /* Found one.. */ - if (ign != ign_end) - { - if (!delta) - (*ign)->time = 0; - else if ((*ign)->time < Anope::CurTime + delta) - (*ign)->time = Anope::CurTime + delta; - } - /* Create new entry.. */ - else - { - IgnoreData *newign = new IgnoreData(); - newign->mask = mask; - newign->time = delta ? Anope::CurTime + delta : 0; - ignore.push_front(newign); - Log(LOG_DEBUG) << "Added new ignore entry for " << mask; - } -} - -/*************************************************************************/ - -/** - * Retrieve an ignorance record for a nick or mask. - * If the nick isn't being ignored, we return NULL and if necesary - * flush the record from the ignore list (i.e. ignore timed out). - * @param nick Nick or (nick!)user@host to look for on the ignorelist. - * @return Pointer to the ignore record, NULL if none was found. - */ -IgnoreData *get_ignore(const Anope::string &nick) -{ - if (nick.empty()) - return NULL; - /* User has disabled the IGNORE system */ - if (!allow_ignore) - return NULL; - User *u = finduser(nick); - std::list<IgnoreData *>::iterator ign = ignore.begin(), ign_end = ignore.end(); - /* If we find a real user, match his mask against the ignorelist. */ - if (u) - { - /* Opers are not ignored, even if a matching entry may be present. */ - if (u->HasMode(UMODE_OPER)) - return NULL; - for (; ign != ign_end; ++ign) - { - Entry ignore_mask((*ign)->mask); - if (ignore_mask.Matches(u)) - break; - } - } - else - { - Anope::string tmp; - size_t user, host; - /* We didn't get a user.. generate a valid mask. */ - if ((host = nick.find('@')) != Anope::string::npos) - { - if ((user = nick.find('!')) != Anope::string::npos) - { - /* this should never happen */ - if (user > host) - return NULL; - tmp = nick; - } - else - /* We have user@host. Add nick wildcard. */ - tmp = "*!" + nick; - } - /* We only got a nick.. */ - else - tmp = nick + "!*@*"; - for (; ign != ign_end; ++ign) - if (Anope::Match(tmp, (*ign)->mask)) - break; - } - /* Check whether the entry has timed out */ - if (ign != ign_end && (*ign)->time && (*ign)->time <= Anope::CurTime) - { - Log(LOG_DEBUG) << "Expiring ignore entry " << (*ign)->mask; - delete *ign; - ignore.erase(ign); - ign = ign_end = ignore.end(); - } - if (ign != ign_end) - Log(LOG_DEBUG) << "Found ignore entry (" << (*ign)->mask << ") for " << nick; - return ign == ign_end ? NULL : *ign; -} - -/*************************************************************************/ - -/** - * Deletes a given nick/mask from the ignorelist. - * @param nick Nick or (nick!)user@host to delete from the ignorelist. - * @return Returns 1 on success, 0 if no entry is found. - */ -int delete_ignore(const Anope::string &nick) -{ - if (nick.empty()) - return 0; - /* If it s an existing user, we ignore the hostmask. */ - Anope::string tmp; - size_t user, host; - User *u = finduser(nick); - if (u) - tmp = "*!*@" + u->host; - /* Determine whether we get a nick or a mask. */ - else if ((host = nick.find('@')) != Anope::string::npos) - { - /* Check whether we have a nick too.. */ - if ((user = nick.find('!')) != Anope::string::npos) - { - /* this should never happen */ - if (user > host) - return 0; - tmp = nick; - } - else - /* We have user@host. Add nick wildcard. */ - tmp = "*!" + nick; - } - /* We only got a nick.. */ - else - tmp = nick + "!*@*"; - std::list<IgnoreData *>::iterator ign = ignore.begin(), ign_end = ignore.end(); - for (; ign != ign_end; ++ign) - if (tmp.equals_ci((*ign)->mask)) - break; - /* No matching ignore found. */ - if (ign == ign_end) - return 0; - Log(LOG_DEBUG) << "Deleting ignore entry " << (*ign)->mask; - /* Delete the entry and all references to it. */ - delete *ign; - ignore.erase(ign); - return 1; -} - -/*************************************************************************/ - -/** - * Clear the ignorelist. - * @return The number of entries deleted. - */ -int clear_ignores() -{ - if (ignore.empty()) - return 0; - for (std::list<IgnoreData *>::iterator ign = ignore.begin(), ign_end = ignore.end(); ign != ign_end; ++ign) - { - Log(LOG_DEBUG) << "Deleting ignore entry " << (*ign)->mask; - delete *ign; - } - int deleted = ignore.size(); - ignore.clear(); - return deleted; -} - /** Main process routine * @param buffer A raw line from the uplink to do things with */ |