]> git.netwichtig.de Git - user/henk/code/inspircd.git/blobdiff - src/modules/m_conn_waitpong.cpp
Fix m_chanlog crashing.
[user/henk/code/inspircd.git] / src / modules / m_conn_waitpong.cpp
index 51571072e6a18727061a84802ec79f40dde854fa..3b63f07a7272f0e7b498685015cc92e76608df50 100644 (file)
@@ -2,7 +2,7 @@
  *       | Inspire Internet Relay Chat Daemon |
  *       +------------------------------------+
  *
- *  InspIRCd: (C) 2002-2007 InspIRCd Development Team
+ *  InspIRCd: (C) 2002-2008 InspIRCd Development Team
  * See: http://www.inspircd.org/wiki/index.php/Credits
  *
  * This program is free but copyrighted software; see
@@ -26,9 +26,11 @@ class ModuleWaitPong : public Module
         : Module(Me), extenstr("waitpong_pingstr")
        {
                OnRehash(NULL,"");
+               Implementation eventlist[] = { I_OnUserRegister, I_OnCheckReady, I_OnPreCommand, I_OnRehash, I_OnUserDisconnect, I_OnCleanup };
+               ServerInstance->Modules->Attach(eventlist, this, 6);
        }
        
-       virtual void OnRehash(userrec* user, const std::string &param)
+       virtual void OnRehash(User* user, const std::string &param)
        {
                ConfigReader Conf(ServerInstance);
                
@@ -43,10 +45,6 @@ class ModuleWaitPong : public Module
                        killonbadreply = true;
        }
 
-       void Implements(char* List)
-       {
-               List[I_OnUserRegister] = List[I_OnCheckReady] = List[I_OnPreCommand] = List[I_OnRehash] = List[I_OnUserDisconnect] = List[I_OnCleanup] = 1;
-       }
 
        char* RandString(unsigned int length)
        {
@@ -58,7 +56,7 @@ class ModuleWaitPong : public Module
                return (char*)out;
        }
        
-       virtual int OnUserRegister(userrec* user)
+       virtual int OnUserRegister(User* user)
        {
                char* pingrpl = RandString(10);
                
@@ -71,25 +69,25 @@ class ModuleWaitPong : public Module
                return 0;
        }
        
-       virtual int OnPreCommand(const std::string &command, const char** parameters, int pcnt, userrec* user, bool validated, const std::string &original_line)
+       virtual int OnPreCommand(const std::string &command, const char** parameters, int pcnt, User* user, bool validated, const std::string &original_line)
        {
-               if(command == "PONG")
+               if (command == "PONG")
                {
                        char* pingrpl;
                        user->GetExt(extenstr, pingrpl);
                        
-                       if(pingrpl)
+                       if (pingrpl)
                        {
-                               if(strcmp(pingrpl, parameters[0]) == 0)
+                               if (strcmp(pingrpl, parameters[0]) == 0)
                                {
-                                       DELETE(pingrpl);
+                                       delete[] pingrpl;
                                        user->Shrink(extenstr);
                                        return 1;
                                }
                                else
                                {
                                        if(killonbadreply)
-                                               userrec::QuitUser(ServerInstance, user, "Incorrect ping reply for registration");
+                                               User::QuitUser(ServerInstance, user, "Incorrect ping reply for registration");
                                        return 1;
                                }
                        }
@@ -97,35 +95,35 @@ class ModuleWaitPong : public Module
                return 0;
        }
 
-       virtual bool OnCheckReady(userrec* user)
+       virtual bool OnCheckReady(User* user)
        {
                char* pingrpl;
                return (!user->GetExt(extenstr, pingrpl));
        }
        
-       virtual void OnUserDisconnect(userrec* user)
+       virtual void OnUserDisconnect(User* user)
        {
                char* pingrpl;
                user->GetExt(extenstr, pingrpl);
 
-               if(pingrpl)
+               if (pingrpl)
                {
-                       DELETE(pingrpl);
+                       delete[] pingrpl;
                        user->Shrink(extenstr);
                }
        }
        
        virtual void OnCleanup(int target_type, void* item)
        {
-               if(target_type == TYPE_USER)
+               if (target_type == TYPE_USER)
                {
-                       userrec* user = (userrec*)item;
+                       User* user = (User*)item;
                        char* pingrpl;
                        user->GetExt(extenstr, pingrpl);
                        
-                       if(pingrpl)
+                       if (pingrpl)
                        {
-                               DELETE(pingrpl);
+                               delete[] pingrpl;
                                user->Shrink(extenstr);
                        } 
                }