]> git.netwichtig.de Git - user/henk/code/inspircd.git/blobdiff - src/modules/extra/m_sqlutils.cpp
Add logging for static callback messages/errors from the database.
[user/henk/code/inspircd.git] / src / modules / extra / m_sqlutils.cpp
index 2edf282636c589a35d69e86d8cb12545e2927e97..5935e15536095578ca740dd3fbf8e10d5cfdbc6e 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
@@ -23,8 +23,8 @@
 /* $ModDesc: Provides some utilities to SQL client modules, such as mapping queries to users and channels */
 /* $ModDep: m_sqlutils.h */
 
-typedef std::map<unsigned long, userrec*> IdUserMap;
-typedef std::map<unsigned long, chanrec*> IdChanMap;
+typedef std::map<unsigned long, User*> IdUserMap;
+typedef std::map<unsigned long, Channel*> IdChanMap;
 typedef std::list<unsigned long> AssocIdList;
 
 class ModuleSQLutils : public Module
@@ -38,6 +38,8 @@ public:
        : Module::Module(Me)
        {
                ServerInstance->Modules->PublishInterface("SQLutils", this);
+               Implementation eventlist[] = { I_OnChannelDelete, I_OnUnloadModule, I_OnRequest, I_OnUserDisconnect };
+               ServerInstance->Modules->Attach(eventlist, this, 4);
        }
 
        virtual ~ModuleSQLutils()
@@ -45,12 +47,8 @@ public:
                ServerInstance->Modules->UnpublishInterface("SQLutils", this);
        }       
 
-       void Implements(char* List)
-       {
-               List[I_OnChannelDelete] = List[I_OnUnloadModule] = List[I_OnRequest] =  List[I_OnUserDisconnect] = 1;
-       }
 
-       virtual char* OnRequest(Request* request)
+       virtual const char* OnRequest(Request* request)
        {
                if(strcmp(SQLUTILAU, request->GetId()) == 0)
                {
@@ -105,7 +103,7 @@ public:
                return SQLUTILSUCCESS;
        }
        
-       virtual void OnUserDisconnect(userrec* user)
+       virtual void OnUserDisconnect(User* user)
        {
                /* A user is disconnecting, first we need to check if they have a list of queries associated with them.
                 * Then, if they do, we need to erase each of them from our IdUserMap (iduser) so when the module that
@@ -125,14 +123,14 @@ public:
                                {
                                        if(iter->second != user)
                                        {
-                                               ServerInstance->Log(DEBUG, "BUG: ID associated with user %s doesn't have the same userrec* associated with it in the map (erasing anyway)", user->nick);
+                                               ServerInstance->Logs->Log("m_sqlutils",DEBUG, "BUG: ID associated with user %s doesn't have the same User* associated with it in the map (erasing anyway)", user->nick);
                                        }
 
                                        iduser.erase(iter);
                                }
                                else
                                {
-                                       ServerInstance->Log(DEBUG, "BUG: user %s was extended with sqlutils_queryids but there was nothing matching in the map", user->nick);
+                                       ServerInstance->Logs->Log("m_sqlutils",DEBUG, "BUG: user %s was extended with sqlutils_queryids but there was nothing matching in the map", user->nick);
                                }
                        }
                        
@@ -192,7 +190,7 @@ public:
                }
        }
        
-       virtual void OnChannelDelete(chanrec* chan)
+       virtual void OnChannelDelete(Channel* chan)
        {
                /* A channel is being destroyed, first we need to check if it has a list of queries associated with it.
                 * Then, if it does, we need to erase each of them from our IdChanMap (idchan) so when the module that
@@ -212,13 +210,13 @@ public:
                                {
                                        if(iter->second != chan)
                                        {
-                                               ServerInstance->Log(DEBUG, "BUG: ID associated with channel %s doesn't have the same chanrec* associated with it in the map (erasing anyway)", chan->name);
+                                               ServerInstance->Logs->Log("m_sqlutils",DEBUG, "BUG: ID associated with channel %s doesn't have the same Channel* associated with it in the map (erasing anyway)", chan->name);
                                        }
                                        idchan.erase(iter);                                     
                                }
                                else
                                {
-                                       ServerInstance->Log(DEBUG, "BUG: channel %s was extended with sqlutils_queryids but there was nothing matching in the map", chan->name);
+                                       ServerInstance->Logs->Log("m_sqlutils",DEBUG, "BUG: channel %s was extended with sqlutils_queryids but there was nothing matching in the map", chan->name);
                                }
                        }
                        
@@ -234,4 +232,4 @@ public:
        
 };
 
-MODULE_INIT(ModuleSQLutils);
+MODULE_INIT(ModuleSQLutils)