]> git.netwichtig.de Git - user/henk/code/inspircd.git/blobdiff - src/modules/m_sqlauth.cpp
Various improvements to UNIX socket support.
[user/henk/code/inspircd.git] / src / modules / m_sqlauth.cpp
index 5c3c5a84ef66e1c7416adabac20a64d9a30841e4..54ff7e0888ddacb3c3fec7170d86eb7c0b8fd13c 100644 (file)
@@ -86,7 +86,7 @@ class AuthQuery : public SQL::Query
                                }
 
                                if (verbose)
-                                       ServerInstance->SNO->WriteGlobalSno('a', "Forbidden connection from %s (Password from the SQL query did not match the user provided password)", user->GetFullRealHost().c_str());
+                                       ServerInstance->SNO->WriteGlobalSno('a', "Forbidden connection from %s (password from the SQL query did not match the user provided password)", user->GetFullRealHost().c_str());
                                pendingExt.set(user, AUTH_STATE_FAIL);
                                return;
                        }
@@ -116,6 +116,7 @@ class ModuleSQLAuth : public Module
 {
        LocalIntExt pendingExt;
        dynamic_reference<SQL::Provider> SQL;
+       UserCertificateAPI sslapi;
 
        std::string freeformquery;
        std::string killreason;
@@ -129,6 +130,7 @@ class ModuleSQLAuth : public Module
        ModuleSQLAuth()
                : pendingExt("sqlauth-wait", ExtensionItem::EXT_USER, this)
                , SQL(this, "SQL")
+               , sslapi(this)
        {
        }
 
@@ -169,7 +171,7 @@ class ModuleSQLAuth : public Module
 
                if (!SQL)
                {
-                       ServerInstance->SNO->WriteGlobalSno('a', "Forbiding connection from %s (SQL database not present)", user->GetFullRealHost().c_str());
+                       ServerInstance->SNO->WriteGlobalSno('a', "Forbidden connection from %s (SQL database not present)", user->GetFullRealHost().c_str());
                        ServerInstance->Users->QuitUser(user, killreason);
                        return MOD_RES_PASSTHRU;
                }
@@ -179,6 +181,7 @@ class ModuleSQLAuth : public Module
                SQL::ParamMap userinfo;
                SQL::PopulateUserInfo(user, userinfo);
                userinfo["pass"] = user->password;
+               userinfo["certfp"] = sslapi ? sslapi->GetFingerprint(user) : "";
 
                for (std::vector<std::string>::const_iterator it = hash_algos.begin(); it != hash_algos.end(); ++it)
                {
@@ -187,9 +190,6 @@ class ModuleSQLAuth : public Module
                                userinfo[*it + "pass"] = hashprov->Generate(user->password);
                }
 
-               const std::string certfp = SSLClientCert::GetFingerprint(&user->eh);
-               userinfo["certfp"] = certfp;
-
                SQL->Submit(new AuthQuery(this, user->uuid, pendingExt, verbose, kdf, pwcolumn), freeformquery, userinfo);
 
                return MOD_RES_PASSTHRU;
@@ -212,7 +212,7 @@ class ModuleSQLAuth : public Module
 
        Version GetVersion() CXX11_OVERRIDE
        {
-               return Version("Allow/Deny connections based upon an arbitrary SQL table", VF_VENDOR);
+               return Version("Allow/deny connections based upon an arbitrary SQL table", VF_VENDOR);
        }
 };