]> git.netwichtig.de Git - user/henk/code/inspircd.git/blobdiff - src/modules/extra/m_pgsql.cpp
Make a ./configure --system to support system-wide installation of inspircd
[user/henk/code/inspircd.git] / src / modules / extra / m_pgsql.cpp
index b5beea0b0b8dabcc64ea7c9fcb25d9d0fc919988..629193ea1613e1b845ae074822bd45c8a39816a7 100644 (file)
@@ -2,7 +2,7 @@
  *       | Inspire Internet Relay Chat Daemon |
  *       +------------------------------------+
  *
- *  InspIRCd: (C) 2002-2009 InspIRCd Development Team
+ *  InspIRCd: (C) 2002-2010 InspIRCd Development Team
  * See: http://wiki.inspircd.org/Credits
  *
  * This program is free but copyrighted software; see
@@ -44,7 +44,7 @@ typedef std::map<std::string, SQLConn*> ConnMap;
  */
 enum SQLstatus { CREAD, CWRITE, WREAD, WWRITE, RREAD, RWRITE };
 
-unsigned long count(const char * const str, char a)
+static unsigned long count(const char * const str, char a)
 {
        unsigned long n = 0;
        for (const char *p = str; *p; ++p)
@@ -763,25 +763,18 @@ class ModulePgSQL : public Module
        unsigned long currid;
        char* sqlsuccess;
        ReconnectTimer* retimer;
-
+       ServiceProvider sqlserv;
  public:
        ModulePgSQL()
-       : currid(0)
+       : currid(0), sqlserv(this, "SQL/pgsql", SERVICE_DATA)
        {
-               ServerInstance->Modules->UseInterface("SQLutils");
-
                sqlsuccess = new char[strlen(SQLSUCCESS)+1];
 
                strlcpy(sqlsuccess, SQLSUCCESS, strlen(SQLSUCCESS));
 
-               if (!ServerInstance->Modules->PublishFeature("SQL", this))
-               {
-                       throw ModuleException("BUG: PgSQL Unable to publish feature 'SQL'");
-               }
-
                ReadConf();
 
-               ServerInstance->Modules->PublishInterface("SQL", this);
+               ServerInstance->Modules->AddService(sqlserv);
                Implementation eventlist[] = { I_OnUnloadModule, I_OnRehash };
                ServerInstance->Modules->Attach(eventlist, this, 2);
        }
@@ -792,9 +785,6 @@ class ModulePgSQL : public Module
                        ServerInstance->Timers->DelTimer(retimer);
                ClearAllConnections();
                delete[] sqlsuccess;
-               ServerInstance->Modules->UnpublishInterface("SQL", this);
-               ServerInstance->Modules->UnpublishFeature("SQL");
-               ServerInstance->Modules->DoneWithInterface("SQLutils");
        }