Skip to content

Commit

Permalink
Added new macro OPT_SET_EXTENDED_VALUE_BIN
Browse files Browse the repository at this point in the history
OPT_SET_EXTENDED_VALUE_BIN can be used to set
binary values for options:
OPT_SET_EXTENDED_VALUE_BIN(options, key, key_len, val, len)
  • Loading branch information
9EOR9 committed Apr 30, 2022
1 parent f75a819 commit ab7a81e
Showing 1 changed file with 13 additions and 2 deletions.
15 changes: 13 additions & 2 deletions libmariadb/mariadb_lib.c
Original file line number Diff line number Diff line change
Expand Up @@ -674,6 +674,18 @@ struct st_default_options mariadb_defaults[] =
(OPTS)->extension= (struct st_mysql_options_extension *) \
calloc(1, sizeof(struct st_mysql_options_extension));

#define OPT_SET_EXTENDED_VALUE_BIN(OPTS, KEY, KEY_LEN, VAL, LEN) \
CHECK_OPT_EXTENSION_SET(OPTS) \
free((gptr)(OPTS)->extension->KEY); \
if((VAL) && (LEN)) { \
if (((OPTS)->extension->KEY= malloc((LEN)))) { \
memcpy((OPTS)->extension->KEY, (VAL), (LEN)); \
(OPTS)->extension->KEY_LEN= (LEN); \
} \
} \
else \
(OPTS)->extension->KEY= NULL

#define OPT_SET_EXTENDED_VALUE_STR(OPTS, KEY, VAL) \
CHECK_OPT_EXTENSION_SET(OPTS) \
free((gptr)(OPTS)->extension->KEY); \
Expand Down Expand Up @@ -3252,8 +3264,7 @@ mysql_optionsv(MYSQL *mysql,enum mysql_option option, ...)
case MARIADB_OPT_PROXY_HEADER:
{
size_t arg2 = va_arg(ap, size_t);
OPT_SET_EXTENDED_VALUE_STR(&mysql->options, proxy_header, (char *)arg1);
OPT_SET_EXTENDED_VALUE(&mysql->options, proxy_header_len, arg2);
OPT_SET_EXTENDED_VALUE_BIN(&mysql->options, proxy_header, proxy_header_len, (char *)arg1, arg2);
}
break;
case MARIADB_OPT_TLS_VERSION:
Expand Down

0 comments on commit ab7a81e

Please sign in to comment.