summaryrefslogtreecommitdiffstats
path: root/ulogd/mysql
diff options
context:
space:
mode:
author/C=EU/ST=EU/CN=Pablo Neira Ayuso/emailAddress=pablo@netfilter.org </C=EU/ST=EU/CN=Pablo Neira Ayuso/emailAddress=pablo@netfilter.org>2007-08-06 10:05:09 +0000
committer/C=EU/ST=EU/CN=Pablo Neira Ayuso/emailAddress=pablo@netfilter.org </C=EU/ST=EU/CN=Pablo Neira Ayuso/emailAddress=pablo@netfilter.org>2007-08-06 10:05:09 +0000
commit40c0ecf2e13302aa0fc82304305d656254cdf927 (patch)
tree57fe64af34e108d028602d5aad71a3dd74375caa /ulogd/mysql
parent7e1200fcd573e32b3c937fad1a2577748b5f3611 (diff)
MySQL 5.0 has changed the default for database reconnection after
timeout. It is now not enabled by default. The following patch restores the reconnection functionnality for the ulogd-mysql plugin. Eric Leblond <eric@inl.fr>
Diffstat (limited to 'ulogd/mysql')
-rw-r--r--ulogd/mysql/ulogd_MYSQL.c16
1 files changed, 16 insertions, 0 deletions
diff --git a/ulogd/mysql/ulogd_MYSQL.c b/ulogd/mysql/ulogd_MYSQL.c
index 1f19848..b917ffa 100644
--- a/ulogd/mysql/ulogd_MYSQL.c
+++ b/ulogd/mysql/ulogd_MYSQL.c
@@ -407,6 +407,9 @@ static int mysql_get_columns(const char *table)
static int mysql_open_db(char *server, int port, char *user, char *pass,
char *db)
{
+#ifdef MYSQL_OPT_RECONNECT
+ my_bool trueval = 1;
+#endif
dbh = mysql_init(NULL);
if (!dbh)
return -1;
@@ -415,12 +418,25 @@ static int mysql_open_db(char *server, int port, char *user, char *pass,
mysql_options(dbh, MYSQL_OPT_CONNECT_TIMEOUT,
(const char *) &connect_timeout_ce.u.value);
+#ifdef MYSQL_OPT_RECONNECT
+# if defined(MYSQL_VERSION_ID) && (MYSQL_VERSION_ID >= 50019)
+ mysql_options(dbh, MYSQL_OPT_RECONNECT, &trueval);
+# endif
+#endif
+
+
if (!mysql_real_connect(dbh, server, user, pass, db, port, NULL, 0))
{
_mysql_fini();
return -1;
}
+#ifdef MYSQL_OPT_RECONNECT
+# if defined(MYSQL_VERSION_ID) && (MYSQL_VERSION_ID < 50019)
+ mysql_options(dbh, MYSQL_OPT_RECONNECT, &trueval);
+# endif
+#endif
+
return 0;
}