diff options
author | Machiavelli <none@none> | 2010-09-29 08:48:06 +0200 |
---|---|---|
committer | Machiavelli <none@none> | 2010-09-29 08:48:06 +0200 |
commit | bf72fa749ff3beef2ba226862e2a5af7c170fc49 (patch) | |
tree | b8f40bd36b67439e790f20f2b52c0ae864e547b5 /src/server/shared/Database/MySQLConnection.cpp | |
parent | dcbe4026c327539391e022c69e417928f83c4ab5 (diff) |
Core/DBLayer: Store MySQL connection details in a struct and print relevant data in sql driver messages
--HG--
branch : trunk
Diffstat (limited to 'src/server/shared/Database/MySQLConnection.cpp')
-rw-r--r-- | src/server/shared/Database/MySQLConnection.cpp | 41 |
1 files changed, 11 insertions, 30 deletions
diff --git a/src/server/shared/Database/MySQLConnection.cpp b/src/server/shared/Database/MySQLConnection.cpp index f4cf3152f6f..7c004927c4a 100644 --- a/src/server/shared/Database/MySQLConnection.cpp +++ b/src/server/shared/Database/MySQLConnection.cpp @@ -30,7 +30,6 @@ #include "SQLOperation.h" #include "PreparedStatement.h" #include "DatabaseWorker.h" -#include "Util.h" #include "Timer.h" MySQLConnection::MySQLConnection() : @@ -65,7 +64,7 @@ void MySQLConnection::Close() delete this; } -bool MySQLConnection::Open(const std::string& infoString) +bool MySQLConnection::Open(const MySQLConnectionInfo& connInfo) { MYSQL *mysqlInit; mysqlInit = mysql_init(NULL); @@ -75,30 +74,12 @@ bool MySQLConnection::Open(const std::string& infoString) return false; } - Tokens tokens = StrSplit(infoString, ";"); - - Tokens::iterator iter; - - std::string host, port_or_socket, user, password, database; int port; - char const* unix_socket; - - iter = tokens.begin(); - - if (iter != tokens.end()) - host = *iter++; - if (iter != tokens.end()) - port_or_socket = *iter++; - if (iter != tokens.end()) - user = *iter++; - if (iter != tokens.end()) - password = *iter++; - if (iter != tokens.end()) - database = *iter++; + char* unix_socket; mysql_options(mysqlInit, MYSQL_SET_CHARSET_NAME, "utf8"); #ifdef _WIN32 - if (host==".") // named pipe use option (Windows) + if (connInfo.host == ".") // named pipe use option (Windows) { unsigned int opt = MYSQL_PROTOCOL_PIPE; mysql_options(mysqlInit, MYSQL_OPT_PROTOCOL, (char const*)&opt); @@ -107,17 +88,17 @@ bool MySQLConnection::Open(const std::string& infoString) } else // generic case { - port = atoi(port_or_socket.c_str()); + port = atoi(connInfo.port_or_socket.c_str()); unix_socket = 0; } #else - if (host==".") // socket use option (Unix/Linux) + if (connInfo.host == ".") // socket use option (Unix/Linux) { unsigned int opt = MYSQL_PROTOCOL_SOCKET; mysql_options(mysqlInit, MYSQL_OPT_PROTOCOL, (char const*)&opt); - host = "localhost"; + connInfo.host = "localhost"; port = 0; - unix_socket = port_or_socket.c_str(); + unix_socket = connInfo.port_or_socket.c_str(); } else // generic case { @@ -126,8 +107,8 @@ bool MySQLConnection::Open(const std::string& infoString) } #endif - m_Mysql = mysql_real_connect(mysqlInit, host.c_str(), user.c_str(), - password.c_str(), database.c_str(), port, unix_socket, 0); + m_Mysql = mysql_real_connect(mysqlInit, connInfo.host.c_str(), connInfo.user.c_str(), + connInfo.password.c_str(), connInfo.database.c_str(), port, unix_socket, 0); if (m_Mysql) { @@ -136,7 +117,7 @@ bool MySQLConnection::Open(const std::string& infoString) if (mysql_get_server_version(m_Mysql) != mysql_get_client_version()) sLog.outSQLDriver("[WARNING] MySQL client/server version mismatch; may conflict with behaviour of prepared statements."); - sLog.outDetail("Connected to MySQL database at %s", host.c_str()); + sLog.outDetail("Connected to MySQL database at %s", connInfo.host.c_str()); if (!mysql_autocommit(m_Mysql, 1)) sLog.outSQLDriver("AUTOCOMMIT SUCCESSFULLY SET TO 1"); else @@ -160,7 +141,7 @@ bool MySQLConnection::Open(const std::string& infoString) } else { - sLog.outError("Could not connect to MySQL database at %s: %s\n", host.c_str(), mysql_error(mysqlInit)); + sLog.outError("Could not connect to MySQL database at %s: %s\n", connInfo.host.c_str(), mysql_error(mysqlInit)); mysql_close(mysqlInit); return false; } |