From d3c78e84233473904620d9806d6558604f1b57f9 Mon Sep 17 00:00:00 2001 From: Yurii Olenych Date: Tue, 25 Aug 2020 15:49:06 +0300 Subject: [PATCH] Added optional DB port parameter for MySQL store. --- stargazer/plugins/store/mysql/mysql_store.cpp | 19 ++++++++++++++++--- stargazer/plugins/store/mysql/mysql_store.h | 2 ++ 2 files changed, 18 insertions(+), 3 deletions(-) diff --git a/stargazer/plugins/store/mysql/mysql_store.cpp b/stargazer/plugins/store/mysql/mysql_store.cpp index 3ad79b30..c441a708 100644 --- a/stargazer/plugins/store/mysql/mysql_store.cpp +++ b/stargazer/plugins/store/mysql/mysql_store.cpp @@ -110,6 +110,7 @@ extern "C" STG::Store* GetStore() //----------------------------------------------------------------------------- MYSQL_STORE_SETTINGS::MYSQL_STORE_SETTINGS() : settings(NULL) + , dbPort(0) { } //----------------------------------------------------------------------------- @@ -146,13 +147,25 @@ if (ParseParam(s.moduleParams, "server", dbHost) < 0 && ParseParam(s.moduleParams, "dbhost", dbHost) < 0) return -1; +// not required +std::string dbPortAsString; +if (ParseParam(s.moduleParams, "port", dbPortAsString) == 0 || + ParseParam(s.moduleParams, "dbport", dbPortAsString) == 0) +{ + if (GetInt(dbPortAsString, &dbPort, 0) != 0) + { + errorStr = "Can't parse db port from string: \"" + dbPortAsString + "\"\n"; + return -1; + } +} + return 0; } //----------------------------------------------------------------------------- //----------------------------------------------------------------------------- //----------------------------------------------------------------------------- MYSQL_STORE::MYSQL_STORE() - : version("mysql_store v.0.67"), + : version("mysql_store v.0.68"), schemaVersion(0), logger(STG::PluginLogger::get("store_mysql")) { @@ -195,7 +208,7 @@ else MYSQL * sock; if (!(sock = mysql_real_connect(&mysql,storeSettings.GetDBHost().c_str(), storeSettings.GetDBUser().c_str(),storeSettings.GetDBPassword().c_str(), - 0,0,NULL,0))) + 0,storeSettings.GetDBPort(),NULL,0))) { errorStr = "Couldn't connect to mysql engine! With error:\n"; errorStr += mysql_error(&mysql); @@ -2136,7 +2149,7 @@ MYSQL * MYSQL_STORE::MysqlConnect() const { } if (!(sock = mysql_real_connect(sock,storeSettings.GetDBHost().c_str(), storeSettings.GetDBUser().c_str(),storeSettings.GetDBPassword().c_str(), - 0,0,NULL,0))) + 0,storeSettings.GetDBPort(),NULL,0))) { errorStr = "Couldn't connect to mysql engine! With error:\n"; errorStr += mysql_error(sock); diff --git a/stargazer/plugins/store/mysql/mysql_store.h b/stargazer/plugins/store/mysql/mysql_store.h index 6d09c476..61a13203 100644 --- a/stargazer/plugins/store/mysql/mysql_store.h +++ b/stargazer/plugins/store/mysql/mysql_store.h @@ -24,6 +24,7 @@ public: const std::string & GetDBPassword() const { return dbPass; } const std::string & GetDBHost() const { return dbHost; } const std::string & GetDBName() const { return dbName; } + unsigned int GetDBPort() const { return dbPort; } private: MYSQL_STORE_SETTINGS(const MYSQL_STORE_SETTINGS & rvalue); @@ -40,6 +41,7 @@ private: std::string dbPass; std::string dbName; std::string dbHost; + unsigned int dbPort; }; //----------------------------------------------------------------------------- class MYSQL_STORE: public STG::Store -- 2.43.2