]> git.ipfire.org Git - thirdparty/bind9.git/commitdiff
2581. [contrib] dlz/mysql set MYSQL_OPT_RECONNECT option on connection.
authorMark Andrews <marka@isc.org>
Thu, 26 Mar 2009 17:56:40 +0000 (17:56 +0000)
committerMark Andrews <marka@isc.org>
Thu, 26 Mar 2009 17:56:40 +0000 (17:56 +0000)
                        Requires MySQL 5.0.19 or later. [RT #19084]

CHANGES
contrib/dlz/drivers/dlz_mysql_driver.c

diff --git a/CHANGES b/CHANGES
index 0b2f5710b66d9d27fe2b3d67d64489be3558ffb6..60780cc818cffa90ad149d238b1170c2afb3eecf 100644 (file)
--- a/CHANGES
+++ b/CHANGES
@@ -1,3 +1,6 @@
+2581.  [contrib]       dlz/mysql set MYSQL_OPT_RECONNECT option on connection.
+                       Requires MySQL 5.0.19 or later. [RT #19084]
+
 2579.  [bug]           DNSSEC lookaside validation failed to handle unknown
                        algorithms. [RT #19479]
 
index ea32d39ec69fabf63877e1249bdf69709b45d9f8..5d2739b1dddd42b927af8ce08ab08c0cb69d2235 100644 (file)
@@ -792,6 +792,9 @@ mysql_create(const char *dlzname, unsigned int argc, char *argv[],
        char *endp;
        int j;
        unsigned int flags = 0;
+#ifdef MYSQL_OPT_RECONNECT
+        my_bool auto_reconnect = 1;
+#endif
 
        UNUSED(driverarg);
        UNUSED(dlzname);
@@ -923,6 +926,17 @@ mysql_create(const char *dlzname, unsigned int argc, char *argv[],
        pass = getParameterValue(argv[1], "pass=");
        socket = getParameterValue(argv[1], "socket=");
 
+#ifdef MYSQL_OPT_RECONNECT
+       /* enable automatic reconnection. */
+        if (mysql_options((MYSQL *) dbi->dbconn, MYSQL_OPT_RECONNECT,
+                         &auto_reconnect) != 0) {
+               isc_log_write(dns_lctx, DNS_LOGCATEGORY_DATABASE,
+                             DNS_LOGMODULE_DLZ, ISC_LOG_WARNING,
+                             "mysql driver failed to set "
+                             "MYSQL_OPT_RECONNECT option, continuing");
+       }
+#endif
+
        for (j=0; dbc == NULL && j < 4; j++)
                dbc = mysql_real_connect((MYSQL *) dbi->dbconn, host,
                                         user, pass, dbname, port, socket,