diff options
| author | Adam- <Adam-@5417fbe8-f217-4b02-8779-1006273d7864> | 2010-05-22 07:40:22 +0000 |
|---|---|---|
| committer | Adam- <Adam-@5417fbe8-f217-4b02-8779-1006273d7864> | 2010-05-22 07:40:22 +0000 |
| commit | d5f036017510dad134fd9c8d471135f774f1fe17 (patch) | |
| tree | ee037c32da9ad223cd660af9f5ed36133a517bec /include/services.h | |
| parent | fae2710ba7e068edb68baf26f901af564741e5bf (diff) | |
Rewrote the nick colliding/releaseing/canceling system, fixes many many bugs on IRCds without svsnick and/or svshold
git-svn-id: http://anope.svn.sourceforge.net/svnroot/anope/trunk@2975 5417fbe8-f217-4b02-8779-1006273d7864
Diffstat (limited to 'include/services.h')
| -rw-r--r-- | include/services.h | 39 |
1 files changed, 13 insertions, 26 deletions
diff --git a/include/services.h b/include/services.h index 2807c49c8..1eb644c52 100644 --- a/include/services.h +++ b/include/services.h @@ -1159,65 +1159,52 @@ class CoreExport Anope */ class NickServCollide : public Timer { - public: - /* NickAlias of the nick who were kicking off */ - NickAlias *na; - /* Return for the std::map::insert */ - std::pair<std::map<NickAlias *, NickServCollide *>::iterator, bool> it; + /* The nick */ + std::string nick; + public: /** Default constructor - * @param nickalias The nick alias were kicking off + * @param _nick The nick were colliding * @param delay How long to delay before kicking the user off the nick */ - NickServCollide(NickAlias *nickalias, time_t delay); + NickServCollide(const std::string &_nick, time_t delay); /** Default destructor */ - ~NickServCollide(); + virtual ~NickServCollide(); /** Called when the delay is up * @param t The current time */ void Tick(time_t t); - - /** Clear all timers for a nick - * @param na The nick to remove the timers for - */ - static void ClearTimers(NickAlias *na); }; /** Timers for releasing nicks to be available for use */ class NickServRelease : public Timer { - public: /* The nick */ - NickAlias *na; + std::string nick; + + public: /* The uid of the services enforcer client (used for TS6 ircds) */ std::string uid; - /* Return for std::map::insert */ - std::pair<std::map<NickAlias *, NickServRelease *>::iterator, bool> it; /** Default constructor - * @param nickalias The nick + * @param _nick The nick + * @param _uid the uid of the enforcer, if any * @param delay The delay before the nick is released */ - NickServRelease(NickAlias *nickalias, time_t delay); + NickServRelease(const std::string &_nick, const std::string &_uid, time_t delay); /** Default destructor */ - ~NickServRelease(); + virtual ~NickServRelease(); /** Called when the delay is up * @param t The current time */ void Tick(time_t t); - - /** Clear all timers for a nick - * @param na The nick to remove the timers for - * @param dorelase true to actually call release(), false to just remove the timers - */ - static void ClearTimers(NickAlias *na, bool dorelease = false); }; /** A timer used to keep the BotServ bot/ChanServ in the channel |
