summaryrefslogtreecommitdiff
path: root/src/nickserv.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/nickserv.cpp')
-rw-r--r--src/nickserv.cpp87
1 files changed, 3 insertions, 84 deletions
diff --git a/src/nickserv.cpp b/src/nickserv.cpp
index fde535e7c..011ee685e 100644
--- a/src/nickserv.cpp
+++ b/src/nickserv.cpp
@@ -10,95 +10,14 @@
*/
#include "services.h"
+#include "account.h"
#include "modules.h"
+#include "users.h"
+#include "protocol.h"
nickalias_map NickAliasList;
nickcore_map NickCoreList;
-typedef std::map<Anope::string, NickServCollide *> nickservcollides_map;
-typedef std::map<Anope::string, NickServHeld *> nickservheld_map;
-typedef std::map<Anope::string, NickServRelease *> nickservreleases_map;
-
-static nickservcollides_map NickServCollides;
-static nickservheld_map NickServHelds;
-static nickservreleases_map NickServReleases;
-
-NickServCollide::NickServCollide(User *user, time_t delay) : Timer(delay), u(user), nick(u->nick)
-{
- /* Erase the current collide and use the new one */
- nickservcollides_map::iterator nit = NickServCollides.find(user->nick);
- if (nit != NickServCollides.end())
- delete nit->second;
-
- NickServCollides.insert(std::make_pair(nick, this));
-}
-
-NickServCollide::~NickServCollide()
-{
- NickServCollides.erase(this->nick);
-}
-
-void NickServCollide::Tick(time_t ctime)
-{
- if (!u)
- return;
- /* If they identified or don't exist anymore, don't kill them. */
- NickAlias *na = findnick(u->nick);
- if (!na || u->Account() == na->nc || u->my_signon > this->GetSetTime())
- return;
-
- u->Collide(na);
-}
-
-NickServHeld::NickServHeld(NickAlias *n, long l) : Timer(l), na(n), nick(na->nick)
-{
- nickservheld_map::iterator nit = NickServHelds.find(na->nick);
- if (nit != NickServHelds.end())
- delete nit->second;
-
- NickServHelds[na->nick] = this;
-}
-
-NickServHeld::~NickServHeld()
-{
- NickServHelds.erase(this->nick);
-}
-
-void NickServHeld::Tick(time_t)
-{
- if (na)
- na->UnsetFlag(NS_HELD);
-}
-
-NickServRelease::NickServRelease(NickAlias *na, time_t delay) : User(na->nick, Config->NSEnforcerUser, Config->NSEnforcerHost, ts6_uid_retrieve()), Timer(delay), nick(na->nick)
-{
- this->realname = "Services Enforcer";
- this->server = Me;
-
- /* Erase the current release timer and use the new one */
- nickservreleases_map::iterator nit = NickServReleases.find(this->nick);
- if (nit != NickServReleases.end())
- delete nit->second;
-
- NickServReleases.insert(std::make_pair(this->nick, this));
-
- ircdproto->SendClientIntroduction(this);
-}
-
-NickServRelease::~NickServRelease()
-{
- NickServReleases.erase(this->nick);
-
- ircdproto->SendQuit(this, "");
-}
-
-void NickServRelease::Tick(time_t)
-{
- /* Do not do anything here,
- * The timer manager will delete this timer which will do the necessary cleanup
- */
-}
-
NickAlias *findnick(const Anope::string &nick)
{
FOREACH_MOD(I_OnFindNick, OnFindNick(nick));