diff options
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> | 2008-02-03 11:46:58 +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> | 2008-02-03 11:46:58 +0000 |
commit | ba51d7be3a5759c1da346d4872951de68ad1c6ef (patch) | |
tree | df407d14ec8fd4033c3295e07ceb34982154f850 /output/mysql | |
parent | c8e739086a248d85200619ae3407c0065eb6ba26 (diff) |
From: Eric Leblond <eric@inl.fr>
MySQL client library does not reconnect automatically since 5.0.
Diffstat (limited to 'output/mysql')
-rw-r--r-- | output/mysql/ulogd_output_MYSQL.c | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/output/mysql/ulogd_output_MYSQL.c b/output/mysql/ulogd_output_MYSQL.c index 1826c03..800d79d 100644 --- a/output/mysql/ulogd_output_MYSQL.c +++ b/output/mysql/ulogd_output_MYSQL.c @@ -180,6 +180,9 @@ static int open_db_mysql(struct ulogd_pluginstance *upi) char *user = user_ce(upi->config_kset).u.string; char *pass = pass_ce(upi->config_kset).u.string; char *db = db_ce(upi->config_kset).u.string; +#ifdef MYSQL_OPT_RECONNECT + my_bool trueval = 1; +#endif mi->dbh = mysql_init(NULL); if (!mi->dbh) { @@ -190,6 +193,11 @@ static int open_db_mysql(struct ulogd_pluginstance *upi) if (connect_timeout) mysql_options(mi->dbh, MYSQL_OPT_CONNECT_TIMEOUT, (const char *) &connect_timeout); +#ifdef MYSQL_OPT_RECONNECT +# if defined(MYSQL_VERSION_ID) && (MYSQL_VERSION_ID >= 50019) + mysql_options(mi->dbh, MYSQL_OPT_RECONNECT, &trueval); +# endif +#endif if (!mysql_real_connect(mi->dbh, server, user, pass, db, port, NULL, 0)) { ulogd_log(ULOGD_ERROR, "can't connect to db: %s\n", @@ -197,6 +205,12 @@ static int open_db_mysql(struct ulogd_pluginstance *upi) return -1; } +#ifdef MYSQL_OPT_RECONNECT +# if defined(MYSQL_VERSION_ID) && (MYSQL_VERSION_ID < 50019) + mysql_options(mi->dbh, MYSQL_OPT_RECONNECT, &trueval); +# endif +#endif + return 0; } |