From c6d5d5c88f8fe61d21d9f2911e9649f89772527d Mon Sep 17 00:00:00 2001 From: Mark Andrews Date: Mon, 16 Mar 2020 16:44:51 +1100 Subject: [PATCH] Typedef my_bool if missing. ORACLE MySQL 8.0 has dropped the my_bool type, so we need to reinstate it back when compiling with that version or higher. MariaDB is still keeping the my_bool type. The numbering between the two (MariaDB 5.x jumped to MariaDB 10.x) doesn't make the life of the developer easy. --- contrib/dlz/drivers/dlz_mysql_driver.c | 4 ++++ contrib/dlz/modules/mysql/dlz_mysql_dynamic.c | 4 ++++ contrib/dlz/modules/mysqldyn/dlz_mysqldyn_mod.c | 9 +++++++++ 3 files changed, 17 insertions(+) diff --git a/contrib/dlz/drivers/dlz_mysql_driver.c b/contrib/dlz/drivers/dlz_mysql_driver.c index f000aab8bd..afe906a7fb 100644 --- a/contrib/dlz/drivers/dlz_mysql_driver.c +++ b/contrib/dlz/drivers/dlz_mysql_driver.c @@ -62,6 +62,10 @@ #include #include +#if !defined(LIBMARIADB) && MYSQL_VERSION_ID >= 80000 +typedef bool my_bool; +#endif /* !defined(LIBMARIADB) && MYSQL_VERSION_ID >= 80000 */ + static dns_sdlzimplementation_t *dlz_mysql = NULL; #define dbc_search_limit 30 diff --git a/contrib/dlz/modules/mysql/dlz_mysql_dynamic.c b/contrib/dlz/modules/mysql/dlz_mysql_dynamic.c index 1a40112b79..de6beac736 100644 --- a/contrib/dlz/modules/mysql/dlz_mysql_dynamic.c +++ b/contrib/dlz/modules/mysql/dlz_mysql_dynamic.c @@ -59,6 +59,10 @@ #include #include +#if !defined(LIBMARIADB) && MYSQL_VERSION_ID >= 80000 +typedef bool my_bool; +#endif /* !defined(LIBMARIADB) && MYSQL_VERSION_ID >= 80000 */ + #define dbc_search_limit 30 #define ALLNODES 1 #define ALLOWXFR 2 diff --git a/contrib/dlz/modules/mysqldyn/dlz_mysqldyn_mod.c b/contrib/dlz/modules/mysqldyn/dlz_mysqldyn_mod.c index 9a2ca2370f..d6f759d414 100644 --- a/contrib/dlz/modules/mysqldyn/dlz_mysqldyn_mod.c +++ b/contrib/dlz/modules/mysqldyn/dlz_mysqldyn_mod.c @@ -61,6 +61,10 @@ #include #include +#if !defined(LIBMARIADB) && MYSQL_VERSION_ID >= 80000 +typedef bool my_bool; +#endif /* !defined(LIBMARIADB) && MYSQL_VERSION_ID >= 80000 */ + /* * The SQL queries that will be used for lookups and updates are defined * here. They will be processed into queries by the build_query() @@ -1020,7 +1024,10 @@ dlz_create(const char *dlzname, unsigned int argc, char *argv[], void **dbdata, */ if (mysql_thread_safe()) { for (n = 0; n < MAX_DBI; n++) { +#if MYSQL_VERSION_ID >= 50000 my_bool opt = 1; +#endif + dlz_mutex_init(&state->db[n].mutex, NULL); dlz_mutex_lock(&state->db[n].mutex); state->db[n].id = n; @@ -1028,8 +1035,10 @@ dlz_create(const char *dlzname, unsigned int argc, char *argv[], void **dbdata, state->db[n].sock = mysql_init(NULL); mysql_options(state->db[n].sock, MYSQL_READ_DEFAULT_GROUP, modname); +#if MYSQL_VERSION_ID >= 50000 mysql_options(state->db[n].sock, MYSQL_OPT_RECONNECT, &opt); +#endif dlz_mutex_unlock(&state->db[n].mutex); }