From edb6b202b7e233864aa5dd84532646c50097b0b8 Mon Sep 17 00:00:00 2001 From: Mingli Yu Date: Mon, 4 Mar 2019 00:49:17 -0800 Subject: [PATCH] Use API function for reconnect For configuring reconnect functionality use standard API function MYSQL_OPT_RECONNECT instead of direct modification of internal structures which does not work for MariaDB. Fixes compilation with MariaDB 10.2.6+. Upstream-Status: Backport [https://github.com/perl5-dbi/DBD-mysql/commit/0b1884f4153d3de0a91bae4d3b3cc1771ffdf4f3] Signed-off-by: Mingli Yu --- dbdimp.c | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/dbdimp.c b/dbdimp.c index 9b8b313..3bed213 100644 --- a/dbdimp.c +++ b/dbdimp.c @@ -1979,6 +1979,16 @@ MYSQL *mysql_dr_connect( if (result) { + /* + we turn off Mysql's auto reconnect and handle re-connecting ourselves + so that we can keep track of when this happens. + */ +#if MYSQL_VERSION_ID >= 50013 + my_bool reconnect = FALSE; + mysql_options(result, MYSQL_OPT_RECONNECT, &reconnect); +#else + result->reconnect = 0; +#endif #if MYSQL_VERSION_ID >=SERVER_PREPARE_VERSION /* connection succeeded. */ /* imp_dbh == NULL when mysql_dr_connect() is called from mysql.xs @@ -1992,12 +2002,6 @@ MYSQL *mysql_dr_connect( imp_dbh->async_query_in_flight = NULL; } #endif - - /* - we turn off Mysql's auto reconnect and handle re-connecting ourselves - so that we can keep track of when this happens. - */ - result->reconnect=0; } else { /* -- 2.17.1