From 40c0ecf2e13302aa0fc82304305d656254cdf927 Mon Sep 17 00:00:00 2001 From: "/C=EU/ST=EU/CN=Pablo Neira Ayuso/emailAddress=pablo@netfilter.org" Date: Mon, 6 Aug 2007 10:05:09 +0000 Subject: 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 --- ulogd/mysql/ulogd_MYSQL.c | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) (limited to 'ulogd/mysql') 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; } -- cgit v1.2.3