]> git.netwichtig.de Git - user/henk/code/inspircd.git/blobdiff - src/modules/m_nicklock.cpp
Added a parameter to OnRehash for the rehash parameter
[user/henk/code/inspircd.git] / src / modules / m_nicklock.cpp
index b96105af71fe835f6080a12ea1d152c25e01db96..a2d365c3adc6cadafcb5fdd233459a1ec5ef2283 100644 (file)
  * ---------------------------------------------------
  */
 
+using namespace std;
+
 #include <stdio.h>
 #include <string>
 #include "users.h"
 #include "channels.h"
 #include "modules.h"
 #include "helperfuncs.h"
+#include "hashcomp.h"
 
 /* $ModDesc: Provides the NICKLOCK command, allows an oper to chage a users nick and lock them to it until they quit */
 
 Server *Srv;
-
-char* dummy = "ON";
         
 void handle_nicklock(char **parameters, int pcnt, userrec *user)
 {
        userrec* source = Srv->FindNick(std::string(parameters[0]));
+       irc::string server;
+       irc::string me;
+
        if (source)
        {
                if (source->GetExt("nick_locked"))
@@ -39,15 +43,18 @@ void handle_nicklock(char **parameters, int pcnt, userrec *user)
                }
                if (Srv->IsNick(std::string(parameters[1])))
                {
-                       if (!strcasecmp(user->server,Srv->GetServerName().c_str()))
+                       server = user->server;
+                       me = Srv->GetServerName().c_str();
+
+                       if (server == me)
                        {
                                // give them a lock flag
                                Srv->SendOpers(std::string(user->nick)+" used NICKLOCK to change and hold "+std::string(parameters[0])+" to "+parameters[1]);
                                Srv->ChangeUserNick(source,std::string(parameters[1]));
                                // only attempt to set their lockflag after we know the change succeeded
-                               userrec* s2 = Srv->FindNick(std::string(parameters[1]));
-                               if (s2)
-                                       s2->Extend("nick_locked",dummy);
+                               source = Srv->FindNick(std::string(parameters[1]));
+                               if (source)
+                                       source->Extend("nick_locked", "ON");
                        }
                        else
                        {
@@ -98,7 +105,7 @@ class ModuleNickLock : public Module
                return 0;
        }
 
-        virtual void OnUserQuit(userrec* user)
+        virtual void OnUserQuit(userrec* user, std::string reason)
         {
                 user->Shrink("nick_locked");
         }