From: Yurii Olenych <yolenych@gmail.com>
Date: Tue, 25 Aug 2020 12:49:06 +0000 (+0300)
Subject: Added optional DB port parameter for MySQL store.
X-Git-Url: https://git.stg.codes/stg.git/commitdiff_plain/d3c78e84233473904620d9806d6558604f1b57f9?ds=inline;hp=--cc

Added optional DB port parameter for MySQL store.
---

d3c78e84233473904620d9806d6558604f1b57f9
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<unsigned int>(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