]> git.netwichtig.de Git - user/henk/code/inspircd.git/blobdiff - src/modules/extra/m_mysql.cpp
Make more config stuff case insensitive.
[user/henk/code/inspircd.git] / src / modules / extra / m_mysql.cpp
index 4ee6de527232de3c1cdee21c333596f43f54b9df..45ba67e4ebf23d48b53f5e99313246afff38292a 100644 (file)
@@ -203,6 +203,19 @@ class MySQLresult : public SQL::Result
                result.assign(colnames.begin(), colnames.end());
        }
 
+       bool HasColumn(const std::string& column, size_t& index)
+       {
+               for (size_t i = 0; i < colnames.size(); ++i)
+               {
+                       if (colnames[i] == column)
+                       {
+                               index = i;
+                               return true;
+                       }
+               }
+               return false;
+       }
+
        SQL::Field GetValue(int row, int column)
        {
                if ((row >= 0) && (row < rows) && (column >= 0) && (column < (int)fieldlists[row].size()))
@@ -259,7 +272,7 @@ class SQLConnection : public SQL::Provider
                std::string user = config->getString("user");
                std::string pass = config->getString("pass");
                std::string dbname = config->getString("name");
-               int port = config->getInt("port");
+               unsigned int port = config->getUInt("port", 3306);
                bool rv = mysql_real_connect(connection, host.c_str(), user.c_str(), pass.c_str(), dbname.c_str(), port, NULL, 0);
                if (!rv)
                        return rv;
@@ -343,10 +356,9 @@ class SQLConnection : public SQL::Provider
                                        // and one byte is the terminating null
                                        std::vector<char> buffer(parm.length() * 2 + 1);
 
-                                       // The return value of mysql_escape_string() is the length of the encoded string,
+                                       // The return value of mysql_real_escape_string() is the length of the encoded string,
                                        // not including the terminating null
-                                       unsigned long escapedsize = mysql_escape_string(&buffer[0], parm.c_str(), parm.length());
-//                                     mysql_real_escape_string(connection, queryend, paramscopy[paramnum].c_str(), paramscopy[paramnum].length());
+                                       unsigned long escapedsize = mysql_real_escape_string(connection, &buffer[0], parm.c_str(), parm.length());
                                        res.append(&buffer[0], escapedsize);
                                }
                        }
@@ -415,7 +427,7 @@ void ModuleSQL::ReadConfig(ConfigStatus& status)
        ConfigTagList tags = ServerInstance->Config->ConfTags("database");
        for(ConfigIter i = tags.first; i != tags.second; i++)
        {
-               if (i->second->getString("module", "mysql") != "mysql")
+               if (!stdalgo::string::equalsci(i->second->getString("provider"), "mysql"))
                        continue;
                std::string id = i->second->getString("id");
                ConnMap::iterator curr = connections.find(id);