X-Git-Url: https://git.netwichtig.de/gitweb/?a=blobdiff_plain;f=src%2Fmodules%2Fm_watch.cpp;h=e70270424978a17b0a7aad85ed83f8394ba0784a;hb=819147178db00008a215670992d0f532dd57f9e5;hp=71e651736fa618fe438868e1035810640390c5e7;hpb=8828741c72ff0774ba461ca21caf5768d05079bc;p=user%2Fhenk%2Fcode%2Finspircd.git diff --git a/src/modules/m_watch.cpp b/src/modules/m_watch.cpp index 71e651736..e70270424 100644 --- a/src/modules/m_watch.cpp +++ b/src/modules/m_watch.cpp @@ -2,8 +2,8 @@ * | Inspire Internet Relay Chat Daemon | * +------------------------------------+ * - * InspIRCd: (C) 2002-2008 InspIRCd Development Team - * See: http://www.inspircd.org/wiki/index.php/Credits + * InspIRCd: (C) 2002-2009 InspIRCd Development Team + * See: http://wiki.inspircd.org/Credits * * This program is free but copyrighted software; see * the file COPYING for details. @@ -87,10 +87,10 @@ * Before you start screaming, this definition is only used here, so moving it to a header is pointless. * Yes, it's horrid. Blame cl for being different. -- w00t */ -#ifdef WINDOWS -typedef nspace::hash_map, nspace::hash_compare > > watchentries; +#if defined(WINDOWS) && !defined(HASHMAP_DEPRECATED) + typedef nspace::hash_map, nspace::hash_compare > > watchentries; #else -typedef nspace::hash_map, nspace::hash > watchentries; + typedef nspace::hash_map, nspace::hash > watchentries; #endif typedef std::map watchlist; @@ -162,7 +162,7 @@ class CommandWatch : public Command wl->erase(n); } - if (!wl->size()) + if (wl->empty()) { user->Shrink("watchlist"); delete wl; @@ -177,16 +177,13 @@ class CommandWatch : public Command /* I'm no longer watching you... */ x->second.erase(n2); - if (!x->second.size()) + if (x->second.empty()) + /* nobody else is, either. */ whos_watching_me->erase(nick); } } - /* This might seem confusing, but we return CMD_FAILURE - * to indicate that this message shouldnt be routed across - * the network to other linked servers. - */ - return CMD_FAILURE; + return CMD_LOCALONLY; } CmdResult add_watch(User* user, const char* nick) @@ -251,7 +248,7 @@ class CommandWatch : public Command } } - return CMD_FAILURE; + return CMD_LOCALONLY; } CommandWatch (InspIRCd* Instance, unsigned int &maxwatch) : Command(Instance,"WATCH",0,0), MAX_WATCH(maxwatch) @@ -263,7 +260,7 @@ class CommandWatch : public Command CmdResult Handle (const std::vector ¶meters, User *user) { - if (!parameters.size()) + if (parameters.empty()) { watchlist* wl; if (user->GetExt("watchlist", wl)) @@ -298,8 +295,9 @@ class CommandWatch : public Command /* I'm no longer watching you... */ i2->second.erase(n); - if (!i2->second.size()) - whos_watching_me->erase(user->nick.c_str()); + if (i2->second.empty()) + /* nobody else is, either. */ + whos_watching_me->erase(i2); } } @@ -363,8 +361,7 @@ class CommandWatch : public Command } } } - /* So that spanningtree doesnt pass the WATCH commands to the network! */ - return CMD_FAILURE; + return CMD_LOCALONLY; } }; @@ -378,7 +375,7 @@ class Modulewatch : public Module Modulewatch(InspIRCd* Me) : Module(Me), maxwatch(32) { - OnRehash(NULL, ""); + OnRehash(NULL); whos_watching_me = new watchentries(); mycommand = new CommandWatch(ServerInstance, maxwatch); ServerInstance->AddCommand(mycommand); @@ -388,7 +385,7 @@ class Modulewatch : public Module ServerInstance->Modules->Attach(eventlist, this, 8); } - virtual void OnRehash(User* user, const std::string ¶meter) + virtual void OnRehash(User* user) { ConfigReader Conf(ServerInstance); maxwatch = Conf.ReadInteger("watch", "maxentries", 0, true); @@ -458,8 +455,9 @@ class Modulewatch : public Module /* I'm no longer watching you... */ i2->second.erase(n); - if (!i2->second.size()) - whos_watching_me->erase(user->nick.c_str()); + if (i2->second.empty()) + /* and nobody else is, either. */ + whos_watching_me->erase(i2); } }