Date: Wednesday, January 25, 2006 @ 11:58:42
Author: csaba
Path: /cvsroot/carob/libmysequoia/src
Modified: CarobMySQL.cpp (1.34 -> 1.35)
read_ini_file() implementation.
----------------+
CarobMySQL.cpp | 39 ++++++++++++++++++++++++++++++++++++++-
1 files changed, 38 insertions(+), 1 deletion(-)
Index: libmysequoia/src/CarobMySQL.cpp
diff -u libmysequoia/src/CarobMySQL.cpp:1.34
libmysequoia/src/CarobMySQL.cpp:1.35
--- libmysequoia/src/CarobMySQL.cpp:1.34 Wed Jan 25 09:46:23 2006
+++ libmysequoia/src/CarobMySQL.cpp Wed Jan 25 11:58:42 2006
@@ -21,13 +21,18 @@
#include <CarobMySQL.hpp>
#include <ResultSetMetaData.hpp>
+#include <IniParser.hpp>
#include <Utils.hpp>
/* MySQL include */
#include <errmsg.h>
+#include <cstdlib>
+#include <string>
+
using namespace CarobNS;
+using namespace std;
CarobMYSQL::CarobMYSQL (MYSQL *mysql, my_bool free_me) :
connectionPtr(0), stmtPtr(0), drsPtr(0), liveResultPtr(0)
@@ -820,8 +825,40 @@
LOG4CXX_DEBUG(logger, "Leaving delete_row_data.");
}
+
void
CarobMYSQL::read_ini_file()
{
- // TODO implementation
+ char *group;
+ string def_home_env = string(getenv("DEFAULT_HOME_ENV")) + "/my.cnf";
+ string home_dir = string(getenv("HOME")) + "/.my.cnf";
+ IniParser ini;
+
+/*
+ * The order of reading the config files:
+ * 1. /etc/
+ * 2. getenv(DEFAULT_HOME_ENV)
+ * 3. ""
+ * 4. "~/"
+ * 5. user supplied options.my_cnf_file
+ */
+
+ ini.parseFile("/etc/my.cnf");
+ ini.parseFile(def_home_env.c_str());
+ ini.parseFile("my.cnf");
+ ini.parseFile(home_dir.c_str());
+ ini.parseFile(mysqlPtr->options.my_cnf_file);
+
+ if (mysqlPtr->options.my_cnf_group && *mysqlPtr->options.my_cnf_group)
+ group = mysqlPtr->options.my_cnf_group;
+ else
+ group = "client";
+
+ mysqlPtr->options.host = cstrdup(ini.get(group, "host").c_str());
+ mysqlPtr->options.user = cstrdup(ini.get(group, "user").c_str());
+ mysqlPtr->options.password = cstrdup(ini.get(group, "password").c_str());
+ mysqlPtr->options.db = cstrdup(ini.get(group, "db").c_str());
+ mysqlPtr->options.port = atoi(ini.get(group, "port").c_str());
+
+ push_init_command(ini.get(group, "init_command").c_str());
}
_______________________________________________
Carob-commits mailing list
[email protected]
https://forge.continuent.org/mailman/listinfo/carob-commits