From fdd6c111c254c5044cd9b6c2f7e4d0c74f427a79 Mon Sep 17 00:00:00 2001 From: Sergei Golubchik Date: Fri, 13 Feb 2015 12:57:11 +0100 Subject: [PATCH] MDEV-7419 Function cli_safe_read not exported Start the client API for low-level protocol access: * unsigned long mysql_net_read_packet(MYSQL *mysql); * unsigned long mysql_net_field_length(unsigned char **packet); --- include/mysql.h | 6 ++++++ include/mysql.h.pp | 2 ++ libmysql/CMakeLists.txt | 3 +++ libmysql/libmysql.c | 17 +++++++++++++++++ 4 files changed, 28 insertions(+) diff --git a/include/mysql.h b/include/mysql.h index d7fe5edef1e..2f205ec6463 100644 --- a/include/mysql.h +++ b/include/mysql.h @@ -854,6 +854,12 @@ my_socket STDCALL mysql_get_socket(const MYSQL *mysql); unsigned int STDCALL mysql_get_timeout_value(const MYSQL *mysql); unsigned int STDCALL mysql_get_timeout_value_ms(const MYSQL *mysql); +/******************************************************************** + mysql_net_ functions - low-level API to MySQL protocol +*********************************************************************/ +unsigned long STDCALL mysql_net_read_packet(MYSQL *mysql); +unsigned long STDCALL mysql_net_field_length(unsigned char **packet); + /* status return codes */ #define MYSQL_NO_DATA 100 #define MYSQL_DATA_TRUNCATED 101 diff --git a/include/mysql.h.pp b/include/mysql.h.pp index b7b1ea2d96d..f6be582c0da 100644 --- a/include/mysql.h.pp +++ b/include/mysql.h.pp @@ -732,3 +732,5 @@ int mysql_close_cont(MYSQL *sock, int status); my_socket mysql_get_socket(const MYSQL *mysql); unsigned int mysql_get_timeout_value(const MYSQL *mysql); unsigned int mysql_get_timeout_value_ms(const MYSQL *mysql); +unsigned long mysql_net_read_packet(MYSQL *mysql); +unsigned long mysql_net_field_length(unsigned char **packet); diff --git a/libmysql/CMakeLists.txt b/libmysql/CMakeLists.txt index ca5d1ec8947..4ce4ab02e6d 100644 --- a/libmysql/CMakeLists.txt +++ b/libmysql/CMakeLists.txt @@ -238,6 +238,9 @@ dynamic_column_get dynamic_column_prepare_decimal # mariadb_deinitialize_ssl +# low-level API to MySQL protocol +mysql_net_read_packet +mysql_net_field_length ) SET(CLIENT_API_FUNCTIONS diff --git a/libmysql/libmysql.c b/libmysql/libmysql.c index df18d6d60da..1df5f0b6d2c 100644 --- a/libmysql/libmysql.c +++ b/libmysql/libmysql.c @@ -4897,3 +4897,20 @@ my_bool STDCALL mysql_read_query_result(MYSQL *mysql) return (*mysql->methods->read_query_result)(mysql); } +/******************************************************************** + mysql_net_ functions - low-level API to MySQL protocol +*********************************************************************/ +#if MYSQL_VERSION_ID > 100100 +#error remove these wrappers in 10.1, rename functions instead +#endif + +ulong STDCALL mysql_net_read_packet(MYSQL *mysql) +{ + return cli_safe_read(mysql); +} + +ulong STDCALL mysql_net_field_length(uchar **packet) +{ + return net_field_length(packet); +} +