From 64ebd5818a229e7b49fc9bde8e738284ea118153 Mon Sep 17 00:00:00 2001 From: Georg Richter Date: Tue, 2 Aug 2022 15:19:39 +0200 Subject: [PATCH] Follow up for status/session_track callback: - changed data type to MARIADB_CONST_STRING - allow setting callback function and/or data ptr --- libmariadb/mariadb_lib.c | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/libmariadb/mariadb_lib.c b/libmariadb/mariadb_lib.c index ee4bff77..195a178e 100644 --- a/libmariadb/mariadb_lib.c +++ b/libmariadb/mariadb_lib.c @@ -2594,7 +2594,7 @@ int ma_read_ok_packet(MYSQL *mysql, uchar *pos, ulong length) while (pos < end) { size_t plen; - MYSQL_LEX_STRING data1, data2; + MARIADB_CONST_STRING data1, data2; si_type= (enum enum_session_state_type)net_field_length(&pos); switch(si_type) { @@ -3774,10 +3774,14 @@ mysql_optionsv(MYSQL *mysql,enum mysql_option option, ...) case MARIADB_OPT_STATUS_CALLBACK: { void *arg2= va_arg(ap, void *); - if (arg1) + if (arg1 || arg2) { - OPT_SET_EXTENDED_VALUE(&mysql->options, status_callback, arg1); - OPT_SET_EXTENDED_VALUE(&mysql->options, status_data, arg2); + if (arg1) { + OPT_SET_EXTENDED_VALUE(&mysql->options, status_callback, arg1); + } + if (arg2) { + OPT_SET_EXTENDED_VALUE(&mysql->options, status_data, arg2); + } } else { OPT_SET_EXTENDED_VALUE(&mysql->options, status_callback, ma_save_session_track_info); OPT_SET_EXTENDED_VALUE(&mysql->options, status_data, mysql);