X-Git-Url: https://git.netwichtig.de/gitweb/?a=blobdiff_plain;f=src%2Fmodules%2Fm_silence.cpp;h=c423506a0c5338aebf68c8b2198b6acaa15772ef;hb=d70ae11ab22d10e40cae525ff28022e596a7c6f0;hp=e6cd730ac48302c10f0d19498c4ad6e567d0b303;hpb=48e25fcfd24027d45540d8e341cd6daf13de16b9;p=user%2Fhenk%2Fcode%2Finspircd.git diff --git a/src/modules/m_silence.cpp b/src/modules/m_silence.cpp index e6cd730ac..c423506a0 100644 --- a/src/modules/m_silence.cpp +++ b/src/modules/m_silence.cpp @@ -14,12 +14,16 @@ * --------------------------------------------------- */ +using namespace std; + #include #include #include #include "users.h" #include "channels.h" #include "modules.h" +#include "helperfuncs.h" +#include "hashcomp.h" /* $ModDesc: Provides support for the /SILENCE command */ @@ -65,7 +69,9 @@ void handle_silence(char **parameters, int pcnt, userrec *user) for (silencelist::iterator i = sl->begin(); i != sl->end(); i++) { // search through for the item - if (!strcasecmp(i->c_str(),nick)) + irc::string listitem = i->c_str(); + irc::string target = nick; + if (listitem == target) { sl->erase(i); WriteServ(user->fd,"950 %s %s :Removed %s!*@* from silence list",user->nick, user->nick,nick); @@ -97,7 +103,9 @@ void handle_silence(char **parameters, int pcnt, userrec *user) // add the nick to it -- silence only takes nicks for some reason even though its list shows masks for (silencelist::iterator n = sl->begin(); n != sl->end(); n++) { - if (!strcasecmp(n->c_str(),nick)) + irc::string listitem = n->c_str(); + irc::string target = nick; + if (listitem == target) { WriteServ(user->fd,"952 %s %s :%s is already on your silence list",user->nick, user->nick,nick); return; @@ -120,7 +128,7 @@ class ModuleSilence : public Module ModuleSilence() { Srv = new Server; - Srv->AddCommand("SILENCE",handle_silence,0,0); + Srv->AddCommand("SILENCE",handle_silence,0,0,"m_silence.so"); } virtual void OnUserQuit(userrec* user) @@ -155,7 +163,9 @@ class ModuleSilence : public Module { for (silencelist::const_iterator c = sl->begin(); c != sl->end(); c++) { - if (!strcasecmp(c->c_str(),user->nick)) + irc::string listitem = c->c_str(); + irc::string target = user->nick; + if (listitem == target) { return 1; } @@ -175,7 +185,9 @@ class ModuleSilence : public Module { for (silencelist::const_iterator c = sl->begin(); c != sl->end(); c++) { - if (!strcasecmp(c->c_str(),user->nick)) + irc::string listitem = c->c_str(); + irc::string target = user->nick; + if (listitem == target) { return 1; } @@ -192,7 +204,7 @@ class ModuleSilence : public Module virtual Version GetVersion() { - return Version(1,0,0,0); + return Version(1,0,0,1,VF_VENDOR); } };