From: Kees Monshouwer Date: Sat, 23 Nov 2013 11:42:16 +0000 (+0100) Subject: autodetect MySQL 5.5+ connection charset X-Git-Tag: auth-3.3.1~15 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=fa1f84552f3acfcfa0762581eb0de4ee0006a806;p=thirdparty%2Fpdns.git autodetect MySQL 5.5+ connection charset Conflicts: .travis.yml --- diff --git a/.travis.yml b/.travis.yml index d5b6de9c1e..ce34201974 100644 --- a/.travis.yml +++ b/.travis.yml @@ -4,8 +4,6 @@ compiler: before_script: - sudo apt-get update - sudo apt-get install libboost-all-dev libtolua-dev bc libcdb-dev libnet-dns-perl unbound-host ldnsutils dnsutils libtool libcdb-dev xmlto dblatex links asciidoc - - sudo sed -i '0,/\[mysqld\]/s//[mysqld]\nskip-character-set-client-handshake/' /etc/mysql/my.cnf - - sudo restart mysql script: - ./bootstrap - ./configure --with-modules='gmysql tinydns random' --with-sqlite3 --enable-unit-tests diff --git a/modules/gmysqlbackend/smysql.cc b/modules/gmysqlbackend/smysql.cc index b6a97a3d16..de67863a03 100644 --- a/modules/gmysqlbackend/smysql.cc +++ b/modules/gmysqlbackend/smysql.cc @@ -22,16 +22,20 @@ SMySQL::SMySQL(const string &database, const string &host, uint16_t port, const mysql_init(&d_db); do { - #if MYSQL_VERSION_ID >= 50013 +#if MYSQL_VERSION_ID >= 50013 my_bool reconnect = 1; mysql_options(&d_db, MYSQL_OPT_RECONNECT, &reconnect); - #endif +#endif - #if MYSQL_VERSION_ID > 51000 +#if MYSQL_VERSION_ID >= 50100 unsigned int timeout = 10; mysql_options(&d_db, MYSQL_OPT_READ_TIMEOUT, &timeout); mysql_options(&d_db, MYSQL_OPT_WRITE_TIMEOUT, &timeout); - #endif +#endif + +#if MYSQL_VERSION_ID >= 50500 + mysql_options(&d_db, MYSQL_SET_CHARSET_NAME, MYSQL_AUTODETECT_CHARSET_NAME); +#endif if (setIsolation && (retry == 1)) mysql_options(&d_db, MYSQL_INIT_COMMAND,"SET SESSION tx_isolation='READ-COMMITTED'");