]> git.netwichtig.de Git - user/henk/code/inspircd.git/blobdiff - src/modules/extra/m_sqloper.cpp
Just to mess with om's head, remove helperfuncs.h from everywhere
[user/henk/code/inspircd.git] / src / modules / extra / m_sqloper.cpp
index cd4ef7102a701dc8fdc615dc79535406b5b1a756..22535e16349caed7a57902d656a98aa75ec3650c 100644 (file)
 #include "modules.h"
 #include "inspircd.h"
 #include "configreader.h"
-#include "helperfuncs.h"
+
 #include "m_sqlv2.h"
 #include "m_sqlutils.h"
 #include "commands/cmd_oper.h"
 
 /* $ModDesc: Allows storage of oper credentials in an SQL table */
 
-extern InspIRCd* ServerInstance;
-
 class ModuleSQLOper : public Module
 {
-       Server* Srv;
+       InspIRCd* Srv;
        Module* SQLutils;
        std::string databaseid;
 
 public:
-       ModuleSQLOper(Server* Me)
+       ModuleSQLOper(InspIRCd* Me)
        : Module::Module(Me), Srv(Me)
        {
-               SQLutils = ServerInstance->FindFeature("SQLutils");
+               SQLutils = Srv->FindFeature("SQLutils");
                
                if (SQLutils)
                {
-                       log(DEBUG, "Successfully got SQLutils pointer");
+                       ServerInstance->Log(DEBUG, "Successfully got SQLutils pointer");
                }
                else
                {
-                       log(DEFAULT, "ERROR: This module requires a module offering the 'SQLutils' feature (usually m_sqlutils.so). Please load it and try again.");
+                       ServerInstance->Log(DEFAULT, "ERROR: This module requires a module offering the 'SQLutils' feature (usually m_sqlutils.so). Please load it and try again.");
                        throw ModuleException("This module requires a module offering the 'SQLutils' feature (usually m_sqlutils.so). Please load it and try again.");
                }
                
@@ -57,7 +55,7 @@ public:
 
        virtual void OnRehash(const std::string &parameter)
        {
-               ConfigReader Conf;
+               ConfigReader Conf(Srv);
                
                databaseid = Conf.ReadValue("sqloper", "dbid", 0); /* Database ID of a database configured for the service provider module */
        }
@@ -87,7 +85,7 @@ public:
        {
                Module* target;
                
-               target = ServerInstance->FindFeature("SQL");
+               target = Srv->FindFeature("SQL");
                
                if (target)
                {
@@ -102,7 +100,7 @@ public:
                                 * association. This means that if the user quits during a query we will just get a failed lookup from m_sqlutils - telling
                                 * us to discard the query.
                                 */
-                               log(DEBUG, "Sent query, got given ID %lu", req.id);
+                               ServerInstance->Log(DEBUG, "Sent query, got given ID %lu", req.id);
                                
                                AssociateUser(this, SQLutils, req.id, user).Send();
                                        
@@ -110,14 +108,14 @@ public:
                        }
                        else
                        {
-                               log(DEBUG, "SQLrequest failed: %s", req.error.Str());
+                               ServerInstance->Log(DEBUG, "SQLrequest failed: %s", req.error.Str());
                        
                                return false;
                        }
                }
                else
                {
-                       log(SPARSE, "WARNING: Couldn't find SQL provider module. NOBODY will be able to oper up unless their o:line is statically configured");
+                       ServerInstance->Log(SPARSE, "WARNING: Couldn't find SQL provider module. NOBODY will be able to oper up unless their o:line is statically configured");
                        return false;
                }
        }
@@ -130,7 +128,7 @@ public:
                
                        res = static_cast<SQLresult*>(request);
                        
-                       log(DEBUG, "Got SQL result (%s) with ID %lu", res->GetId(), res->id);
+                       ServerInstance->Log(DEBUG, "Got SQL result (%s) with ID %lu", res->GetId(), res->id);
                        
                        userrec* user = GetAssocUser(this, SQLutils, res->id).S().user;
                        UnAssociate(this, SQLutils, res->id).S();
@@ -139,8 +137,8 @@ public:
                        {
                                if (res->error.Id() == NO_ERROR)
                                {                               
-                                       log(DEBUG, "Associated query ID %lu with user %s", res->id, user->nick);                        
-                                       log(DEBUG, "Got result with %d rows and %d columns", res->Rows(), res->Cols());
+                                       ServerInstance->Log(DEBUG, "Associated query ID %lu with user %s", res->id, user->nick);                        
+                                       ServerInstance->Log(DEBUG, "Got result with %d rows and %d columns", res->Rows(), res->Cols());
                        
                                        if (res->Rows())
                                        {
@@ -159,7 +157,7 @@ public:
                                                
                                                for (SQLfieldMap& row = res->GetRowMap(); row.size(); row = res->GetRowMap())
                                                {
-                                                       log(DEBUG, "Trying to oper user %s with username = '%s', passhash = '%s', hostname = '%s', type = '%s'", user->nick, row["username"].d.c_str(), row["password"].d.c_str(), row["hostname"].d.c_str(), row["type"].d.c_str());
+                                                       ServerInstance->Log(DEBUG, "Trying to oper user %s with username = '%s', passhash = '%s', hostname = '%s', type = '%s'", user->nick, row["username"].d.c_str(), row["password"].d.c_str(), row["hostname"].d.c_str(), row["type"].d.c_str());
                                                        
                                                        if (OperUser(user, row["username"].d, row["password"].d, row["hostname"].d, row["type"].d))
                                                        {
@@ -176,8 +174,8 @@ public:
                                                 */
                                                
                                                user->WriteServ( "491 %s :Invalid oper credentials", user->nick);
-                                               ServerInstance->WriteOpers("*** WARNING! Failed oper attempt by %s!%s@%s!", user->nick, user->ident, user->host);
-                                               log(DEFAULT,"OPER: Failed oper attempt by %s!%s@%s: user, host or password did not match.", user->nick, user->ident, user->host);
+                                               Srv->WriteOpers("*** WARNING! Failed oper attempt by %s!%s@%s!", user->nick, user->ident, user->host);
+                                               ServerInstance->Log(DEFAULT,"OPER: Failed oper attempt by %s!%s@%s: user, host or password did not match.", user->nick, user->ident, user->host);
                                        }
                                }
                                else
@@ -186,35 +184,35 @@ public:
                                         * We have to fail the /oper request and give them the same error
                                         * as above.
                                         */
-                                       log(DEBUG, "Query failed: %s", res->error.Str());
+                                       ServerInstance->Log(DEBUG, "Query failed: %s", res->error.Str());
 
                                        user->WriteServ( "491 %s :Invalid oper credentials", user->nick);
-                                       ServerInstance->WriteOpers("*** WARNING! Failed oper attempt by %s!%s@%s! (SQL query failed: %s)", user->nick, user->ident, user->host, res->error.Str());
-                                       log(DEFAULT,"OPER: Failed oper attempt by %s!%s@%s: user, host or password did not match.", user->nick, user->ident, user->host);
+                                       Srv->WriteOpers("*** WARNING! Failed oper attempt by %s!%s@%s! (SQL query failed: %s)", user->nick, user->ident, user->host, res->error.Str());
+                                       ServerInstance->Log(DEFAULT,"OPER: Failed oper attempt by %s!%s@%s: user, host or password did not match.", user->nick, user->ident, user->host);
                                }
                        }
                        else
                        {
-                               log(DEBUG, "Got query with unknown ID, this probably means the user quit while the query was in progress");
+                               ServerInstance->Log(DEBUG, "Got query with unknown ID, this probably means the user quit while the query was in progress");
                        }
                
                        return SQLSUCCESS;
                }
                
-               log(DEBUG, "Got unsupported API version string: %s", request->GetId());
+               ServerInstance->Log(DEBUG, "Got unsupported API version string: %s", request->GetId());
                
                return NULL;
        }       
 
        bool OperUser(userrec* user, const std::string &username, const std::string &password, const std::string &pattern, const std::string &type)
        {
-               ConfigReader Conf;
+               ConfigReader Conf(Srv);
                
                for (int j = 0; j < Conf.Enumerate("type"); j++)
                {
                        std::string tname = Conf.ReadValue("type","name",j);
                        
-                       log(DEBUG, "Scanning opertype: %s", tname.c_str());
+                       ServerInstance->Log(DEBUG, "Scanning opertype: %s", tname.c_str());
                        
                        std::string hostname(user->ident);
                        hostname.append("@").append(user->host);
@@ -222,14 +220,14 @@ public:
                        if ((tname == type) && OneOfMatches(hostname.c_str(), user->GetIPString(), pattern.c_str()))
                        {
                                /* Opertype and host match, looks like this is it. */
-                               log(DEBUG, "Host (%s matched %s OR %s) and type (%s)", pattern.c_str(), hostname.c_str(), user->GetIPString(), type.c_str());
+                               ServerInstance->Log(DEBUG, "Host (%s matched %s OR %s) and type (%s)", pattern.c_str(), hostname.c_str(), user->GetIPString(), type.c_str());
                                
                                std::string operhost = Conf.ReadValue("type", "host", j);
                                                        
                                if (operhost.size())
                                        user->ChangeDisplayedHost(operhost.c_str());
                                                                
-                               ServerInstance->WriteOpers("*** %s (%s@%s) is now an IRC operator of type %s", user->nick, user->ident, user->host, type.c_str());
+                               Srv->WriteOpers("*** %s (%s@%s) is now an IRC operator of type %s", user->nick, user->ident, user->host, type.c_str());
                                user->WriteServ("381 %s :You are now an IRC operator of type %s", user->nick, type.c_str());
                                
                                if (!user->modes[UM_OPERATOR])
@@ -264,7 +262,7 @@ class ModuleSQLOperFactory : public ModuleFactory
        {
        }
        
-       virtual Module * CreateModule(Server* Me)
+       virtual Module * CreateModule(InspIRCd* Me)
        {
                return new ModuleSQLOper(Me);
        }