Fix for bug found with vio. Where mysql 5.1 ndb cluster uses a different struct from mysql 5.1.

pull/15/head
Guy Lichtman 2012-10-04 10:18:18 +02:00
parent e38bc05f0f
commit dac2dfc2a3
6 changed files with 1167 additions and 1160 deletions

0
compiling.txt Executable file → Normal file
View File

7
include/audit_handler.h Executable file → Normal file
View File

@ -432,13 +432,14 @@ protected:
*/
virtual void handler_log_audit(ThdSesData *pThdData);
//Vio we write to
Vio * m_vio;
//define as void* so we don't access members directly
void * m_vio;
void close_vio()
{
if (m_vio)
{
vio_close(m_vio);
vio_delete(m_vio);
vio_close((Vio*)m_vio);
vio_delete((Vio*)m_vio);
}
m_vio = NULL;
}

View File

@ -8,6 +8,10 @@
#define MYSQL_DYNAMIC_PLUGIN
#define MYSQL_SERVER 1
//Fix for VIO. We don't want to using method mapping as then a change in the struct will cause the offsets compiled with to
//be wrong. As is the case with ndb which uses a version of Vio with support for ipv6 similar to 5.5 but different from 5.1
#define DONT_MAP_VIO
#include <my_config.h>
#include <mysql_version.h>
//version 5.5.x doesn't contain mysql_priv.h . We need to add the includes provided by it.

2
src/audit_handler.cc Executable file → Normal file
View File

@ -236,7 +236,7 @@ void Audit_file_handler::handler_log_audit(ThdSesData *pThdData)
ssize_t Audit_socket_handler::write(const char * data, size_t size)
{
return vio_write(m_vio, (const uchar *) data, size);
return vio_write((Vio*)m_vio, (const uchar *) data, size);
}
void Audit_socket_handler::handler_start()

2
src/audit_plugin.cc Executable file → Normal file
View File

@ -91,6 +91,8 @@ static const ThdOffsets thd_offsets_arr[] =
{"5.1.55-community","e5d0694364a5e14dd227cb3c28ea0928", 6336, 6400, 3688, 3960, 88, 2048},
//offsets for: mysqlrpm/5.1.56/usr/sbin/mysqld (5.1.56-community)
{"5.1.56-community","fd16157ab06cc0cfb3eba40e9936792c", 6336, 6400, 3688, 3960, 88, 2048},
//offsets for: /usr/sbin/mysqld (5.1.56-ndb-7.1.18-cluster-gpl)
{"5.1.56-ndb-7.1.18-cluster-gpl","ee9cc4dd2f0e9db04dce32867fcf599e", 6304, 6368, 3640, 3912, 88, 2048},
//offsets for: mysqlrpm/5.1.57/usr/sbin/mysqld (5.1.57-community)
{"5.1.57-community","4c6d32f80c20657983f7ac316c6a6e10", 6336, 6400, 3688, 3960, 88, 2048},
//offsets for: mysqlrpm/5.1.58/usr/sbin/mysqld (5.1.58-community)