- move from char* + len to MYSQLND_STRING
- add some more const modifiers
This commit is contained in:
Andrey Hristov 2015-11-10 12:34:27 +01:00
parent a530ecff97
commit c286d7075d
7 changed files with 82 additions and 83 deletions

View file

@ -179,6 +179,7 @@ static enum mysqlnd_connection_state
MYSQLND_METHOD(mysqlnd_connection_state, get)(const struct st_mysqlnd_connection_state * const state_struct) MYSQLND_METHOD(mysqlnd_connection_state, get)(const struct st_mysqlnd_connection_state * const state_struct)
{ {
DBG_ENTER("mysqlnd_connection_state::get") DBG_ENTER("mysqlnd_connection_state::get")
DBG_INF_FMT("State=%u", state_struct->state);
DBG_RETURN(state_struct->state); DBG_RETURN(state_struct->state);
} }
/* }}} */ /* }}} */
@ -186,7 +187,7 @@ MYSQLND_METHOD(mysqlnd_connection_state, get)(const struct st_mysqlnd_connection
/* {{{ mysqlnd_connection_state::set */ /* {{{ mysqlnd_connection_state::set */
static void static void
MYSQLND_METHOD(mysqlnd_connection_state, set)(struct st_mysqlnd_connection_state * const state_struct, enum mysqlnd_connection_state state) MYSQLND_METHOD(mysqlnd_connection_state, set)(struct st_mysqlnd_connection_state * const state_struct, const enum mysqlnd_connection_state state)
{ {
DBG_ENTER("mysqlnd_connection_state::set") DBG_ENTER("mysqlnd_connection_state::set")
DBG_INF_FMT("New state=%u", state); DBG_INF_FMT("New state=%u", state);
@ -202,6 +203,8 @@ MYSQLND_CLASS_METHODS_START(mysqlnd_connection_state)
MYSQLND_CLASS_METHODS_END; MYSQLND_CLASS_METHODS_END;
/* {{{ mysqlnd_upsert_status_init */ /* {{{ mysqlnd_upsert_status_init */
void void
mysqlnd_connection_state_init(struct st_mysqlnd_connection_state * const state) mysqlnd_connection_state_init(struct st_mysqlnd_connection_state * const state)
@ -277,25 +280,25 @@ MYSQLND_METHOD(mysqlnd_conn_data, free_contents)(MYSQLND_CONN_DATA * conn)
DBG_INF("Freeing memory of members"); DBG_INF("Freeing memory of members");
if (conn->host) { if (conn->hostname.s) {
mnd_pefree(conn->host, pers); mnd_pefree(conn->hostname.s, pers);
conn->host = NULL; conn->hostname.s = NULL;
} }
if (conn->user) { if (conn->username.s) {
mnd_pefree(conn->user, pers); mnd_pefree(conn->username.s, pers);
conn->user = NULL; conn->username.s = NULL;
} }
if (conn->passwd) { if (conn->password.s) {
mnd_pefree(conn->passwd, pers); mnd_pefree(conn->password.s, pers);
conn->passwd = NULL; conn->password.s = NULL;
} }
if (conn->connect_or_select_db.s) { if (conn->connect_or_select_db.s) {
mnd_pefree(conn->connect_or_select_db.s, pers); mnd_pefree(conn->connect_or_select_db.s, pers);
conn->connect_or_select_db.s = NULL; conn->connect_or_select_db.s = NULL;
} }
if (conn->unix_socket) { if (conn->unix_socket.s) {
mnd_pefree(conn->unix_socket, pers); mnd_pefree(conn->unix_socket.s, pers);
conn->unix_socket = NULL; conn->unix_socket.s = NULL;
} }
DBG_INF_FMT("scheme=%s", conn->scheme.s); DBG_INF_FMT("scheme=%s", conn->scheme.s);
if (conn->scheme.s) { if (conn->scheme.s) {
@ -888,29 +891,29 @@ MYSQLND_METHOD(mysqlnd_conn_data, connect)(MYSQLND_CONN_DATA * conn,
goto err; /* OOM */ goto err; /* OOM */
} }
conn->user_len = username.l; conn->username.l = username.l;
conn->user = mnd_pestrndup(username.s, conn->user_len, conn->persistent); conn->username.s = mnd_pestrndup(username.s, conn->username.l, conn->persistent);
conn->passwd = mnd_pestrndup(password.s, password.l, conn->persistent); conn->password.l = password.l;
conn->passwd_len = password.l; conn->password.s = mnd_pestrndup(password.s, conn->password.l, conn->persistent);
conn->port = port; conn->port = port;
conn->connect_or_select_db.s = mnd_pestrndup(database.s, database.l, conn->persistent);
conn->connect_or_select_db.l = database.l; conn->connect_or_select_db.l = database.l;
conn->connect_or_select_db.s = mnd_pestrndup(database.s, conn->connect_or_select_db.l, conn->persistent);
if (!conn->user || !conn->passwd || !conn->connect_or_select_db.s) { if (!conn->username.s || !conn->password.s|| !conn->connect_or_select_db.s) {
SET_OOM_ERROR(conn->error_info); SET_OOM_ERROR(conn->error_info);
goto err; /* OOM */ goto err; /* OOM */
} }
if (!unix_socket && !named_pipe) { if (!unix_socket && !named_pipe) {
conn->host = mnd_pestrndup(hostname.s, hostname.l, conn->persistent); conn->hostname.s = mnd_pestrndup(hostname.s, hostname.l, conn->persistent);
if (!conn->host) { if (!conn->hostname.s) {
SET_OOM_ERROR(conn->error_info); SET_OOM_ERROR(conn->error_info);
goto err; /* OOM */ goto err; /* OOM */
} }
conn->host_len = hostname.l; conn->hostname.l = hostname.l;
{ {
char *p; char *p;
mnd_sprintf(&p, 0, "%s via TCP/IP", conn->host); mnd_sprintf(&p, 0, "%s via TCP/IP", conn->hostname);
if (!p) { if (!p) {
SET_OOM_ERROR(conn->error_info); SET_OOM_ERROR(conn->error_info);
goto err; /* OOM */ goto err; /* OOM */
@ -923,12 +926,12 @@ MYSQLND_METHOD(mysqlnd_conn_data, connect)(MYSQLND_CONN_DATA * conn,
} }
} }
} else { } else {
conn->unix_socket = mnd_pestrdup(socket_or_pipe.s, conn->persistent); conn->unix_socket.s = mnd_pestrdup(socket_or_pipe.s, conn->persistent);
if (unix_socket) { if (unix_socket) {
conn->host_info = mnd_pestrdup("Localhost via UNIX socket", conn->persistent); conn->host_info = mnd_pestrdup("Localhost via UNIX socket", conn->persistent);
} else if (named_pipe) { } else if (named_pipe) {
char *p; char *p;
mnd_sprintf(&p, 0, "%s via named pipe", conn->unix_socket); mnd_sprintf(&p, 0, "%s via named pipe", conn->unix_socket.s);
if (!p) { if (!p) {
SET_OOM_ERROR(conn->error_info); SET_OOM_ERROR(conn->error_info);
goto err; /* OOM */ goto err; /* OOM */
@ -942,11 +945,11 @@ MYSQLND_METHOD(mysqlnd_conn_data, connect)(MYSQLND_CONN_DATA * conn,
} else { } else {
php_error_docref(NULL, E_WARNING, "Impossible. Should be either socket or a pipe. Report a bug!"); php_error_docref(NULL, E_WARNING, "Impossible. Should be either socket or a pipe. Report a bug!");
} }
if (!conn->unix_socket || !conn->host_info) { if (!conn->unix_socket.s || !conn->host_info) {
SET_OOM_ERROR(conn->error_info); SET_OOM_ERROR(conn->error_info);
goto err; /* OOM */ goto err; /* OOM */
} }
conn->unix_socket_len = strlen(conn->unix_socket); conn->unix_socket.l = strlen(conn->unix_socket.s);
} }
conn->max_packet_size = MYSQLND_ASSEMBLED_PACKET_MAX_SIZE; conn->max_packet_size = MYSQLND_ASSEMBLED_PACKET_MAX_SIZE;
/* todo: check if charset is available */ /* todo: check if charset is available */
@ -1078,7 +1081,7 @@ PHPAPI MYSQLND * mysqlnd_connection_connect(MYSQLND * conn_handle,
Still the result from the query is PASS Still the result from the query is PASS
*/ */
static enum_func_status static enum_func_status
MYSQLND_METHOD(mysqlnd_conn_data, query)(MYSQLND_CONN_DATA * conn, const char * query, unsigned int query_len) MYSQLND_METHOD(mysqlnd_conn_data, query)(MYSQLND_CONN_DATA * conn, const char * const query, const size_t query_len)
{ {
const size_t this_func = STRUCT_OFFSET(MYSQLND_CLASS_METHODS_TYPE(mysqlnd_conn_data), query); const size_t this_func = STRUCT_OFFSET(MYSQLND_CLASS_METHODS_TYPE(mysqlnd_conn_data), query);
enum_func_status ret = FAIL; enum_func_status ret = FAIL;
@ -1103,7 +1106,7 @@ MYSQLND_METHOD(mysqlnd_conn_data, query)(MYSQLND_CONN_DATA * conn, const char *
/* {{{ mysqlnd_conn_data::send_query */ /* {{{ mysqlnd_conn_data::send_query */
static enum_func_status static enum_func_status
MYSQLND_METHOD(mysqlnd_conn_data, send_query)(MYSQLND_CONN_DATA * conn, const char * query, unsigned int query_len, MYSQLND_METHOD(mysqlnd_conn_data, send_query)(MYSQLND_CONN_DATA * conn, const char * const query, const size_t query_len,
enum_mysqlnd_send_query_type type, zval *read_cb, zval *err_cb) enum_mysqlnd_send_query_type type, zval *read_cb, zval *err_cb)
{ {
const size_t this_func = STRUCT_OFFSET(MYSQLND_CLASS_METHODS_TYPE(mysqlnd_conn_data), send_query); const size_t this_func = STRUCT_OFFSET(MYSQLND_CLASS_METHODS_TYPE(mysqlnd_conn_data), send_query);
@ -1353,7 +1356,7 @@ mysqlnd_poll(MYSQLND **r_array, MYSQLND **e_array, MYSQLND ***dont_poll, long se
/* {{{ mysqlnd_conn_data::list_method */ /* {{{ mysqlnd_conn_data::list_method */
MYSQLND_RES * MYSQLND_RES *
MYSQLND_METHOD(mysqlnd_conn_data, list_method)(MYSQLND_CONN_DATA * conn, const char * query, const char *achtung_wild, char *par1) MYSQLND_METHOD(mysqlnd_conn_data, list_method)(MYSQLND_CONN_DATA * conn, const char * const query, const char * const achtung_wild, const char * const par1)
{ {
const size_t this_func = STRUCT_OFFSET(MYSQLND_CLASS_METHODS_TYPE(mysqlnd_conn_data), list_method); const size_t this_func = STRUCT_OFFSET(MYSQLND_CLASS_METHODS_TYPE(mysqlnd_conn_data), list_method);
char * show_query = NULL; char * show_query = NULL;
@ -1500,7 +1503,7 @@ MYSQLND_METHOD(mysqlnd_conn_data, dump_debug_info)(MYSQLND_CONN_DATA * const con
/* {{{ mysqlnd_conn_data::select_db */ /* {{{ mysqlnd_conn_data::select_db */
static enum_func_status static enum_func_status
MYSQLND_METHOD(mysqlnd_conn_data, select_db)(MYSQLND_CONN_DATA * const conn, const char * const db, unsigned int db_len) MYSQLND_METHOD(mysqlnd_conn_data, select_db)(MYSQLND_CONN_DATA * const conn, const char * const db, const size_t db_len)
{ {
const size_t this_func = STRUCT_OFFSET(MYSQLND_CLASS_METHODS_TYPE(mysqlnd_conn_data), select_db); const size_t this_func = STRUCT_OFFSET(MYSQLND_CLASS_METHODS_TYPE(mysqlnd_conn_data), select_db);
enum_func_status ret = FAIL; enum_func_status ret = FAIL;
@ -1978,7 +1981,7 @@ MYSQLND_METHOD(mysqlnd_conn_data, next_result)(MYSQLND_CONN_DATA * const conn)
/* {{{ mysqlnd_field_type_name */ /* {{{ mysqlnd_field_type_name */
PHPAPI const char *mysqlnd_field_type_name(enum mysqlnd_field_types field_type) PHPAPI const char * mysqlnd_field_type_name(const enum mysqlnd_field_types field_type)
{ {
switch(field_type) { switch(field_type) {
case FIELD_TYPE_JSON: case FIELD_TYPE_JSON:
@ -2033,12 +2036,12 @@ PHPAPI const char *mysqlnd_field_type_name(enum mysqlnd_field_types field_type)
/* {{{ mysqlnd_conn_data::change_user */ /* {{{ mysqlnd_conn_data::change_user */
static enum_func_status static enum_func_status
MYSQLND_METHOD(mysqlnd_conn_data, change_user)(MYSQLND_CONN_DATA * const conn, MYSQLND_METHOD(mysqlnd_conn_data, change_user)(MYSQLND_CONN_DATA * const conn,
const char * user, const char * user,
const char * passwd, const char * passwd,
const char * db, const char * db,
zend_bool silent, zend_bool silent,
size_t passwd_len size_t passwd_len
) )
{ {
const size_t this_func = STRUCT_OFFSET(MYSQLND_CLASS_METHODS_TYPE(mysqlnd_conn_data), change_user); const size_t this_func = STRUCT_OFFSET(MYSQLND_CLASS_METHODS_TYPE(mysqlnd_conn_data), change_user);
enum_func_status ret = FAIL; enum_func_status ret = FAIL;
@ -2059,6 +2062,7 @@ MYSQLND_METHOD(mysqlnd_conn_data, change_user)(MYSQLND_CONN_DATA * const conn,
} }
if (!passwd) { if (!passwd) {
passwd = ""; passwd = "";
passwd_len = 0;
} }
if (!db) { if (!db) {
db = ""; db = "";
@ -2693,8 +2697,8 @@ MYSQLND_METHOD(mysqlnd_conn_data, tx_savepoint_release)(MYSQLND_CONN_DATA * conn
/* {{{ mysqlnd_conn_data::negotiate_client_api_capabilities */ /* {{{ mysqlnd_conn_data::negotiate_client_api_capabilities */
static unsigned int static size_t
MYSQLND_METHOD(mysqlnd_conn_data, negotiate_client_api_capabilities)(MYSQLND_CONN_DATA * const conn, const unsigned int flags) MYSQLND_METHOD(mysqlnd_conn_data, negotiate_client_api_capabilities)(MYSQLND_CONN_DATA * const conn, const size_t flags)
{ {
unsigned int ret = 0; unsigned int ret = 0;
DBG_ENTER("mysqlnd_conn_data::negotiate_client_api_capabilities"); DBG_ENTER("mysqlnd_conn_data::negotiate_client_api_capabilities");
@ -2709,7 +2713,7 @@ MYSQLND_METHOD(mysqlnd_conn_data, negotiate_client_api_capabilities)(MYSQLND_CON
/* {{{ mysqlnd_conn_data::get_client_api_capabilities */ /* {{{ mysqlnd_conn_data::get_client_api_capabilities */
static unsigned int static size_t
MYSQLND_METHOD(mysqlnd_conn_data, get_client_api_capabilities)(const MYSQLND_CONN_DATA * const conn) MYSQLND_METHOD(mysqlnd_conn_data, get_client_api_capabilities)(const MYSQLND_CONN_DATA * const conn)
{ {
DBG_ENTER("mysqlnd_conn_data::get_client_api_capabilities"); DBG_ENTER("mysqlnd_conn_data::get_client_api_capabilities");
@ -2720,18 +2724,17 @@ MYSQLND_METHOD(mysqlnd_conn_data, get_client_api_capabilities)(const MYSQLND_CON
/* {{{ mysqlnd_conn_data::local_tx_start */ /* {{{ mysqlnd_conn_data::local_tx_start */
static enum_func_status static enum_func_status
MYSQLND_METHOD(mysqlnd_conn_data, local_tx_start)(MYSQLND_CONN_DATA * conn, size_t this_func) MYSQLND_METHOD(mysqlnd_conn_data, local_tx_start)(MYSQLND_CONN_DATA * conn, const size_t this_func)
{ {
enum_func_status ret = PASS;
DBG_ENTER("mysqlnd_conn_data::local_tx_start"); DBG_ENTER("mysqlnd_conn_data::local_tx_start");
DBG_RETURN(ret); DBG_RETURN(PASS);
} }
/* }}} */ /* }}} */
/* {{{ mysqlnd_conn_data::local_tx_end */ /* {{{ mysqlnd_conn_data::local_tx_end */
static enum_func_status static enum_func_status
MYSQLND_METHOD(mysqlnd_conn_data, local_tx_end)(MYSQLND_CONN_DATA * conn, size_t this_func, enum_func_status status) MYSQLND_METHOD(mysqlnd_conn_data, local_tx_end)(MYSQLND_CONN_DATA * conn, const size_t this_func, const enum_func_status status)
{ {
DBG_ENTER("mysqlnd_conn_data::local_tx_end"); DBG_ENTER("mysqlnd_conn_data::local_tx_end");
DBG_RETURN(status); DBG_RETURN(status);
@ -2871,7 +2874,7 @@ MYSQLND_METHOD_PRIVATE(mysqlnd_conn, dtor)(MYSQLND * conn)
/* {{{ mysqlnd_conn_data::close */ /* {{{ mysqlnd_conn_data::close */
static enum_func_status static enum_func_status
MYSQLND_METHOD(mysqlnd_conn, close)(MYSQLND * conn_handle, enum_connection_close_type close_type) MYSQLND_METHOD(mysqlnd_conn, close)(MYSQLND * conn_handle, const enum_connection_close_type close_type)
{ {
const size_t this_func = STRUCT_OFFSET(MYSQLND_CLASS_METHODS_TYPE(mysqlnd_conn), close); const size_t this_func = STRUCT_OFFSET(MYSQLND_CLASS_METHODS_TYPE(mysqlnd_conn), close);
MYSQLND_CONN_DATA * conn = conn_handle->data; MYSQLND_CONN_DATA * conn = conn_handle->data;
@ -2916,7 +2919,7 @@ MYSQLND_CLASS_METHODS_END;
/* {{{ mysqlnd_connection_init */ /* {{{ mysqlnd_connection_init */
PHPAPI MYSQLND * PHPAPI MYSQLND *
mysqlnd_connection_init(unsigned int client_flags, zend_bool persistent, struct st_mysqlnd_object_factory_methods * object_factory) mysqlnd_connection_init(const size_t client_flags, const zend_bool persistent, struct st_mysqlnd_object_factory_methods * object_factory)
{ {
struct st_mysqlnd_object_factory_methods * factory = object_factory? object_factory : &MYSQLND_CLASS_METHOD_TABLE_NAME(mysqlnd_object_factory); struct st_mysqlnd_object_factory_methods * factory = object_factory? object_factory : &MYSQLND_CLASS_METHOD_TABLE_NAME(mysqlnd_object_factory);
MYSQLND * ret; MYSQLND * ret;

View file

@ -87,7 +87,7 @@ PHPAPI const MYSQLND_CHARSET * mysqlnd_find_charset_name(const char * const char
#define mysqlnd_connect(conn, host, user, pass, pass_len, db, db_len, port, socket, mysql_flags, client_api_flags) \ #define mysqlnd_connect(conn, host, user, pass, pass_len, db, db_len, port, socket, mysql_flags, client_api_flags) \
mysqlnd_connection_connect((conn), (host), (user), (pass), (pass_len), (db), (db_len), (port), (socket), (mysql_flags), (client_api_flags)) mysqlnd_connection_connect((conn), (host), (user), (pass), (pass_len), (db), (db_len), (port), (socket), (mysql_flags), (client_api_flags))
PHPAPI MYSQLND * mysqlnd_connection_init(unsigned int client_flags, zend_bool persistent, struct st_mysqlnd_object_factory_methods * object_factory); PHPAPI MYSQLND * mysqlnd_connection_init(const size_t client_flags, const zend_bool persistent, struct st_mysqlnd_object_factory_methods * object_factory);
PHPAPI MYSQLND * mysqlnd_connection_connect(MYSQLND * conn, PHPAPI MYSQLND * mysqlnd_connection_connect(MYSQLND * conn,
const char * const host, const char * const host,
const char * const user, const char * const user,
@ -185,7 +185,7 @@ PHPAPI void mysqlnd_free_param_bind_dtor(MYSQLND_PARAM_BIND * param_bind);
PHPAPI void mysqlnd_free_result_bind_dtor(MYSQLND_RESULT_BIND * result_bind); PHPAPI void mysqlnd_free_result_bind_dtor(MYSQLND_RESULT_BIND * result_bind);
PHPAPI const char * mysqlnd_field_type_name(enum mysqlnd_field_types field_type); PHPAPI const char * mysqlnd_field_type_name(const enum mysqlnd_field_types field_type);
/* LOAD DATA LOCAL */ /* LOAD DATA LOCAL */
void mysqlnd_local_infile_default(MYSQLND_CONN_DATA * conn); void mysqlnd_local_infile_default(MYSQLND_CONN_DATA * conn);

View file

@ -271,18 +271,18 @@ mysqlnd_auth_change_user(MYSQLND_CONN_DATA * const conn,
} }
if (ret == PASS) { if (ret == PASS) {
char * tmp = NULL; char * tmp = NULL;
/* if we get conn->user as parameter and then we first free it, then estrndup it, we will crash */ /* if we get conn->username as parameter and then we first free it, then estrndup it, we will crash */
tmp = mnd_pestrndup(user, user_len, conn->persistent); tmp = mnd_pestrndup(user, user_len, conn->persistent);
if (conn->user) { if (conn->username.s) {
mnd_pefree(conn->user, conn->persistent); mnd_pefree(conn->username.s, conn->persistent);
} }
conn->user = tmp; conn->username.s = tmp;
tmp = mnd_pestrdup(passwd, conn->persistent); tmp = mnd_pestrdup(passwd, conn->persistent);
if (conn->passwd) { if (conn->password.s) {
mnd_pefree(conn->passwd, conn->persistent); mnd_pefree(conn->password.s, conn->persistent);
} }
conn->passwd = tmp; conn->password.s = tmp;
if (conn->last_message.s) { if (conn->last_message.s) {
mnd_pefree(conn->last_message.s, conn->persistent); mnd_pefree(conn->last_message.s, conn->persistent);

View file

@ -377,7 +377,7 @@ mysqlnd_stmt_prepare_read_eof(MYSQLND_STMT * s)
/* {{{ mysqlnd_stmt::prepare */ /* {{{ mysqlnd_stmt::prepare */
static enum_func_status static enum_func_status
MYSQLND_METHOD(mysqlnd_stmt, prepare)(MYSQLND_STMT * const s, const char * const query, unsigned int query_len) MYSQLND_METHOD(mysqlnd_stmt, prepare)(MYSQLND_STMT * const s, const char * const query, const size_t query_len)
{ {
MYSQLND_STMT_DATA * stmt = s? s->data:NULL; MYSQLND_STMT_DATA * stmt = s? s->data:NULL;
MYSQLND_STMT * s_to_prepare = s; MYSQLND_STMT * s_to_prepare = s;

View file

@ -928,7 +928,7 @@ MYSQLND_METHOD(mysqlnd_result_unbuffered, fetch_row)(MYSQLND_RES * result, void
/* {{{ mysqlnd_res::use_result */ /* {{{ mysqlnd_res::use_result */
static MYSQLND_RES * static MYSQLND_RES *
MYSQLND_METHOD(mysqlnd_res, use_result)(MYSQLND_RES * const result, zend_bool ps) MYSQLND_METHOD(mysqlnd_res, use_result)(MYSQLND_RES * const result, const zend_bool ps)
{ {
DBG_ENTER("mysqlnd_res::use_result"); DBG_ENTER("mysqlnd_res::use_result");
@ -1506,7 +1506,7 @@ MYSQLND_METHOD(mysqlnd_res, skip_result)(MYSQLND_RES * const result)
/* {{{ mysqlnd_res::free_result */ /* {{{ mysqlnd_res::free_result */
static enum_func_status static enum_func_status
MYSQLND_METHOD(mysqlnd_res, free_result)(MYSQLND_RES * result, zend_bool implicit) MYSQLND_METHOD(mysqlnd_res, free_result)(MYSQLND_RES * result, const zend_bool implicit)
{ {
DBG_ENTER("mysqlnd_res::free_result"); DBG_ENTER("mysqlnd_res::free_result");

View file

@ -171,7 +171,7 @@ MYSQLND_METHOD(mysqlnd_res_meta, free)(MYSQLND_RES_METADATA * meta)
/* {{{ mysqlnd_res::clone_metadata */ /* {{{ mysqlnd_res::clone_metadata */
static MYSQLND_RES_METADATA * static MYSQLND_RES_METADATA *
MYSQLND_METHOD(mysqlnd_res_meta, clone_metadata)(const MYSQLND_RES_METADATA * const meta, zend_bool persistent) MYSQLND_METHOD(mysqlnd_res_meta, clone_metadata)(const MYSQLND_RES_METADATA * const meta, const zend_bool persistent)
{ {
unsigned int i; unsigned int i;
/* +1 is to have empty marker at the end */ /* +1 is to have empty marker at the end */

View file

@ -395,8 +395,8 @@ MYSQLND_CLASS_METHODS_TYPE(mysqlnd_object_factory)
typedef enum_func_status (*func_mysqlnd_conn_data__connect)(MYSQLND_CONN_DATA * conn, MYSQLND_CSTRING hostname, MYSQLND_CSTRING username, MYSQLND_CSTRING password, MYSQLND_CSTRING database, unsigned int port, MYSQLND_CSTRING socket_or_pipe, unsigned int mysql_flags); typedef enum_func_status (*func_mysqlnd_conn_data__connect)(MYSQLND_CONN_DATA * conn, MYSQLND_CSTRING hostname, MYSQLND_CSTRING username, MYSQLND_CSTRING password, MYSQLND_CSTRING database, unsigned int port, MYSQLND_CSTRING socket_or_pipe, unsigned int mysql_flags);
typedef zend_ulong (*func_mysqlnd_conn_data__escape_string)(MYSQLND_CONN_DATA * const conn, char *newstr, const char *escapestr, size_t escapestr_len); typedef zend_ulong (*func_mysqlnd_conn_data__escape_string)(MYSQLND_CONN_DATA * const conn, char *newstr, const char *escapestr, size_t escapestr_len);
typedef enum_func_status (*func_mysqlnd_conn_data__set_charset)(MYSQLND_CONN_DATA * const conn, const char * const charset); typedef enum_func_status (*func_mysqlnd_conn_data__set_charset)(MYSQLND_CONN_DATA * const conn, const char * const charset);
typedef enum_func_status (*func_mysqlnd_conn_data__query)(MYSQLND_CONN_DATA * conn, const char * query, unsigned int query_len); typedef enum_func_status (*func_mysqlnd_conn_data__query)(MYSQLND_CONN_DATA * conn, const char * const query, const size_t query_len);
typedef enum_func_status (*func_mysqlnd_conn_data__send_query)(MYSQLND_CONN_DATA * conn, const char *query, unsigned int query_len, enum_mysqlnd_send_query_type type, zval *read_cb, zval *err_cb); typedef enum_func_status (*func_mysqlnd_conn_data__send_query)(MYSQLND_CONN_DATA * conn, const char * const query, const size_t query_len, enum_mysqlnd_send_query_type type, zval *read_cb, zval *err_cb);
typedef enum_func_status (*func_mysqlnd_conn_data__reap_query)(MYSQLND_CONN_DATA * conn, enum_mysqlnd_reap_result_type type); typedef enum_func_status (*func_mysqlnd_conn_data__reap_query)(MYSQLND_CONN_DATA * conn, enum_mysqlnd_reap_result_type type);
typedef MYSQLND_RES * (*func_mysqlnd_conn_data__use_result)(MYSQLND_CONN_DATA * const conn, const unsigned int flags); typedef MYSQLND_RES * (*func_mysqlnd_conn_data__use_result)(MYSQLND_CONN_DATA * const conn, const unsigned int flags);
typedef MYSQLND_RES * (*func_mysqlnd_conn_data__store_result)(MYSQLND_CONN_DATA * const conn, const unsigned int flags); typedef MYSQLND_RES * (*func_mysqlnd_conn_data__store_result)(MYSQLND_CONN_DATA * const conn, const unsigned int flags);
@ -410,7 +410,7 @@ typedef enum_func_status (*func_mysqlnd_conn_data__refresh_server)(MYSQLND_CONN_
typedef enum_func_status (*func_mysqlnd_conn_data__ping)(MYSQLND_CONN_DATA * const conn); typedef enum_func_status (*func_mysqlnd_conn_data__ping)(MYSQLND_CONN_DATA * const conn);
typedef enum_func_status (*func_mysqlnd_conn_data__kill_connection)(MYSQLND_CONN_DATA * conn, unsigned int pid); typedef enum_func_status (*func_mysqlnd_conn_data__kill_connection)(MYSQLND_CONN_DATA * conn, unsigned int pid);
typedef enum_func_status (*func_mysqlnd_conn_data__select_db)(MYSQLND_CONN_DATA * const conn, const char * const db, unsigned int db_len); typedef enum_func_status (*func_mysqlnd_conn_data__select_db)(MYSQLND_CONN_DATA * const conn, const char * const db, const size_t db_len);
typedef enum_func_status (*func_mysqlnd_conn_data__server_dump_debug_information)(MYSQLND_CONN_DATA * const conn); typedef enum_func_status (*func_mysqlnd_conn_data__server_dump_debug_information)(MYSQLND_CONN_DATA * const conn);
typedef enum_func_status (*func_mysqlnd_conn_data__change_user)(MYSQLND_CONN_DATA * const conn, const char * user, const char * passwd, const char * db, zend_bool silent, size_t passwd_len); typedef enum_func_status (*func_mysqlnd_conn_data__change_user)(MYSQLND_CONN_DATA * const conn, const char * user, const char * passwd, const char * db, zend_bool silent, size_t passwd_len);
@ -427,7 +427,7 @@ typedef const char * (*func_mysqlnd_conn_data__get_host_information)(const MYSQ
typedef unsigned int (*func_mysqlnd_conn_data__get_protocol_information)(const MYSQLND_CONN_DATA * const conn); typedef unsigned int (*func_mysqlnd_conn_data__get_protocol_information)(const MYSQLND_CONN_DATA * const conn);
typedef const char * (*func_mysqlnd_conn_data__get_last_message)(const MYSQLND_CONN_DATA * const conn); typedef const char * (*func_mysqlnd_conn_data__get_last_message)(const MYSQLND_CONN_DATA * const conn);
typedef const char * (*func_mysqlnd_conn_data__charset_name)(const MYSQLND_CONN_DATA * const conn); typedef const char * (*func_mysqlnd_conn_data__charset_name)(const MYSQLND_CONN_DATA * const conn);
typedef MYSQLND_RES * (*func_mysqlnd_conn_data__list_method)(MYSQLND_CONN_DATA * conn, const char * query, const char * achtung_wild, char *par1); typedef MYSQLND_RES * (*func_mysqlnd_conn_data__list_method)(MYSQLND_CONN_DATA * conn, const char * const query, const char * const achtung_wild, const char * const par1);
typedef uint64_t (*func_mysqlnd_conn_data__get_last_insert_id)(const MYSQLND_CONN_DATA * const conn); typedef uint64_t (*func_mysqlnd_conn_data__get_last_insert_id)(const MYSQLND_CONN_DATA * const conn);
typedef uint64_t (*func_mysqlnd_conn_data__get_affected_rows)(const MYSQLND_CONN_DATA * const conn); typedef uint64_t (*func_mysqlnd_conn_data__get_affected_rows)(const MYSQLND_CONN_DATA * const conn);
@ -467,8 +467,8 @@ typedef void (*func_mysqlnd_conn_data__tx_cor_options_to_string)(const MYSQLN
typedef enum_func_status (*func_mysqlnd_conn_data__tx_savepoint)(MYSQLND_CONN_DATA * conn, const char * const name); typedef enum_func_status (*func_mysqlnd_conn_data__tx_savepoint)(MYSQLND_CONN_DATA * conn, const char * const name);
typedef enum_func_status (*func_mysqlnd_conn_data__tx_savepoint_release)(MYSQLND_CONN_DATA * conn, const char * const name); typedef enum_func_status (*func_mysqlnd_conn_data__tx_savepoint_release)(MYSQLND_CONN_DATA * conn, const char * const name);
typedef enum_func_status (*func_mysqlnd_conn_data__local_tx_start)(MYSQLND_CONN_DATA * conn, size_t this_func); typedef enum_func_status (*func_mysqlnd_conn_data__local_tx_start)(MYSQLND_CONN_DATA * conn, const size_t this_func);
typedef enum_func_status (*func_mysqlnd_conn_data__local_tx_end)(MYSQLND_CONN_DATA * conn, size_t this_func, enum_func_status status); typedef enum_func_status (*func_mysqlnd_conn_data__local_tx_end)(MYSQLND_CONN_DATA * conn, const size_t this_func, const enum_func_status status);
typedef enum_func_status (*func_mysqlnd_conn_data__execute_init_commands)(MYSQLND_CONN_DATA * conn); typedef enum_func_status (*func_mysqlnd_conn_data__execute_init_commands)(MYSQLND_CONN_DATA * conn);
typedef unsigned int (*func_mysqlnd_conn_data__get_updated_connect_flags)(MYSQLND_CONN_DATA * conn, unsigned int mysql_flags); typedef unsigned int (*func_mysqlnd_conn_data__get_updated_connect_flags)(MYSQLND_CONN_DATA * conn, unsigned int mysql_flags);
typedef enum_func_status (*func_mysqlnd_conn_data__connect_handshake)(MYSQLND_CONN_DATA * conn, const MYSQLND_CSTRING * const scheme, const MYSQLND_CSTRING * const username, const MYSQLND_CSTRING * const password, const MYSQLND_CSTRING * const database, const unsigned int mysql_flags); typedef enum_func_status (*func_mysqlnd_conn_data__connect_handshake)(MYSQLND_CONN_DATA * conn, const MYSQLND_CSTRING * const scheme, const MYSQLND_CSTRING * const username, const MYSQLND_CSTRING * const password, const MYSQLND_CSTRING * const database, const unsigned int mysql_flags);
@ -477,8 +477,8 @@ typedef struct st_mysqlnd_authentication_plugin * (*func_mysqlnd_conn_data__fetc
typedef enum_func_status (*func_mysqlnd_conn_data__set_client_option_2d)(MYSQLND_CONN_DATA * const conn, enum_mysqlnd_client_option option, const char * const key, const char * const value); typedef enum_func_status (*func_mysqlnd_conn_data__set_client_option_2d)(MYSQLND_CONN_DATA * const conn, enum_mysqlnd_client_option option, const char * const key, const char * const value);
typedef unsigned int (*func_mysqlnd_conn_data__negotiate_client_api_capabilities)(MYSQLND_CONN_DATA * const conn, const unsigned int flags); typedef size_t (*func_mysqlnd_conn_data__negotiate_client_api_capabilities)(MYSQLND_CONN_DATA * const conn, const size_t flags);
typedef unsigned int (*func_mysqlnd_conn_data__get_client_api_capabilities)(const MYSQLND_CONN_DATA * const conn); typedef size_t (*func_mysqlnd_conn_data__get_client_api_capabilities)(const MYSQLND_CONN_DATA * const conn);
typedef MYSQLND_STRING (*func_mysqlnd_conn_data__get_scheme)(MYSQLND_CONN_DATA * conn, MYSQLND_CSTRING hostname, MYSQLND_CSTRING socket_or_pipe, unsigned int port, zend_bool * unix_socket, zend_bool * named_pipe); typedef MYSQLND_STRING (*func_mysqlnd_conn_data__get_scheme)(MYSQLND_CONN_DATA * conn, MYSQLND_CSTRING hostname, MYSQLND_CSTRING socket_or_pipe, unsigned int port, zend_bool * unix_socket, zend_bool * named_pipe);
@ -580,7 +580,7 @@ MYSQLND_CLASS_METHODS_TYPE(mysqlnd_conn_data)
typedef enum_func_status (*func_mysqlnd_data__connect)(MYSQLND * conn, const MYSQLND_CSTRING hostname, const MYSQLND_CSTRING username, const MYSQLND_CSTRING password, const MYSQLND_CSTRING database, unsigned int port, const MYSQLND_CSTRING socket_or_pipe, unsigned int mysql_flags); typedef enum_func_status (*func_mysqlnd_data__connect)(MYSQLND * conn, const MYSQLND_CSTRING hostname, const MYSQLND_CSTRING username, const MYSQLND_CSTRING password, const MYSQLND_CSTRING database, unsigned int port, const MYSQLND_CSTRING socket_or_pipe, unsigned int mysql_flags);
typedef MYSQLND * (*func_mysqlnd_conn__clone_object)(MYSQLND * const conn); typedef MYSQLND * (*func_mysqlnd_conn__clone_object)(MYSQLND * const conn);
typedef void (*func_mysqlnd_conn__dtor)(MYSQLND * conn); typedef void (*func_mysqlnd_conn__dtor)(MYSQLND * conn);
typedef enum_func_status (*func_mysqlnd_conn__close)(MYSQLND * conn, enum_connection_close_type close_type); typedef enum_func_status (*func_mysqlnd_conn__close)(MYSQLND * conn, const enum_connection_close_type close_type);
MYSQLND_CLASS_METHODS_TYPE(mysqlnd_conn) MYSQLND_CLASS_METHODS_TYPE(mysqlnd_conn)
{ {
@ -597,7 +597,7 @@ typedef enum_func_status (*func_mysqlnd_res__row_decoder)(MYSQLND_MEMORY_POOL_CH
zend_bool as_int_or_float, MYSQLND_STATS * stats); zend_bool as_int_or_float, MYSQLND_STATS * stats);
typedef MYSQLND_RES * (*func_mysqlnd_res__use_result)(MYSQLND_RES * const result, zend_bool ps_protocol); typedef MYSQLND_RES * (*func_mysqlnd_res__use_result)(MYSQLND_RES * const result, const zend_bool ps_protocol);
typedef MYSQLND_RES * (*func_mysqlnd_res__store_result)(MYSQLND_RES * result, MYSQLND_CONN_DATA * const conn, const unsigned int flags); typedef MYSQLND_RES * (*func_mysqlnd_res__store_result)(MYSQLND_RES * result, MYSQLND_CONN_DATA * const conn, const unsigned int flags);
typedef void (*func_mysqlnd_res__fetch_into)(MYSQLND_RES *result, const unsigned int flags, zval *return_value, enum_mysqlnd_extension ext ZEND_FILE_LINE_DC); typedef void (*func_mysqlnd_res__fetch_into)(MYSQLND_RES *result, const unsigned int flags, zval *return_value, enum_mysqlnd_extension ext ZEND_FILE_LINE_DC);
typedef MYSQLND_ROW_C (*func_mysqlnd_res__fetch_row_c)(MYSQLND_RES *result); typedef MYSQLND_ROW_C (*func_mysqlnd_res__fetch_row_c)(MYSQLND_RES *result);
@ -618,7 +618,7 @@ typedef zend_ulong * (*func_mysqlnd_res__fetch_lengths)(MYSQLND_RES * const res
typedef enum_func_status (*func_mysqlnd_res__store_result_fetch_data)(MYSQLND_CONN_DATA * const conn, MYSQLND_RES * result, MYSQLND_RES_METADATA * meta, MYSQLND_MEMORY_POOL_CHUNK *** row_buffers, zend_bool binary_protocol); typedef enum_func_status (*func_mysqlnd_res__store_result_fetch_data)(MYSQLND_CONN_DATA * const conn, MYSQLND_RES * result, MYSQLND_RES_METADATA * meta, MYSQLND_MEMORY_POOL_CHUNK *** row_buffers, zend_bool binary_protocol);
typedef void (*func_mysqlnd_res__free_result_buffers)(MYSQLND_RES * result); /* private */ typedef void (*func_mysqlnd_res__free_result_buffers)(MYSQLND_RES * result); /* private */
typedef enum_func_status (*func_mysqlnd_res__free_result)(MYSQLND_RES * result, zend_bool implicit); typedef enum_func_status (*func_mysqlnd_res__free_result)(MYSQLND_RES * result, const zend_bool implicit);
typedef void (*func_mysqlnd_res__free_result_internal)(MYSQLND_RES *result); typedef void (*func_mysqlnd_res__free_result_internal)(MYSQLND_RES *result);
typedef void (*func_mysqlnd_res__free_result_contents)(MYSQLND_RES *result); typedef void (*func_mysqlnd_res__free_result_contents)(MYSQLND_RES *result);
typedef void (*func_mysqlnd_res__free_buffered_data)(MYSQLND_RES *result); typedef void (*func_mysqlnd_res__free_buffered_data)(MYSQLND_RES *result);
@ -704,7 +704,7 @@ typedef const MYSQLND_FIELD * (*func_mysqlnd_res_meta__fetch_fields)(MYSQLND_RES
typedef MYSQLND_FIELD_OFFSET (*func_mysqlnd_res_meta__field_tell)(const MYSQLND_RES_METADATA * const meta); typedef MYSQLND_FIELD_OFFSET (*func_mysqlnd_res_meta__field_tell)(const MYSQLND_RES_METADATA * const meta);
typedef MYSQLND_FIELD_OFFSET (*func_mysqlnd_res_meta__field_seek)(MYSQLND_RES_METADATA * const meta, const MYSQLND_FIELD_OFFSET field_offset); typedef MYSQLND_FIELD_OFFSET (*func_mysqlnd_res_meta__field_seek)(MYSQLND_RES_METADATA * const meta, const MYSQLND_FIELD_OFFSET field_offset);
typedef enum_func_status (*func_mysqlnd_res_meta__read_metadata)(MYSQLND_RES_METADATA * const meta, MYSQLND_CONN_DATA * conn); typedef enum_func_status (*func_mysqlnd_res_meta__read_metadata)(MYSQLND_RES_METADATA * const meta, MYSQLND_CONN_DATA * conn);
typedef MYSQLND_RES_METADATA * (*func_mysqlnd_res_meta__clone_metadata)(const MYSQLND_RES_METADATA * const meta, zend_bool persistent); typedef MYSQLND_RES_METADATA * (*func_mysqlnd_res_meta__clone_metadata)(const MYSQLND_RES_METADATA * const meta, const zend_bool persistent);
typedef void (*func_mysqlnd_res_meta__free_metadata)(MYSQLND_RES_METADATA * meta); typedef void (*func_mysqlnd_res_meta__free_metadata)(MYSQLND_RES_METADATA * meta);
MYSQLND_CLASS_METHODS_TYPE(mysqlnd_res_meta) MYSQLND_CLASS_METHODS_TYPE(mysqlnd_res_meta)
@ -720,7 +720,7 @@ MYSQLND_CLASS_METHODS_TYPE(mysqlnd_res_meta)
}; };
typedef enum_func_status (*func_mysqlnd_stmt__prepare)(MYSQLND_STMT * const stmt, const char * const query, unsigned int query_len); typedef enum_func_status (*func_mysqlnd_stmt__prepare)(MYSQLND_STMT * const stmt, const char * const query, const size_t query_len);
typedef enum_func_status (*func_mysqlnd_stmt__send_execute)(MYSQLND_STMT * const s, enum_mysqlnd_send_execute_type type, zval * read_cb, zval * err_cb); typedef enum_func_status (*func_mysqlnd_stmt__send_execute)(MYSQLND_STMT * const s, enum_mysqlnd_send_execute_type type, zval * read_cb, zval * err_cb);
typedef enum_func_status (*func_mysqlnd_stmt__execute)(MYSQLND_STMT * const stmt); typedef enum_func_status (*func_mysqlnd_stmt__execute)(MYSQLND_STMT * const stmt);
typedef MYSQLND_RES * (*func_mysqlnd_stmt__use_result)(MYSQLND_STMT * const stmt); typedef MYSQLND_RES * (*func_mysqlnd_stmt__use_result)(MYSQLND_STMT * const stmt);
@ -865,7 +865,7 @@ typedef struct st_mysqlnd_protocol_command * (*func_mysqlnd__command_factory)(en
typedef struct st_mysqlnd_connection_state MYSQLND_CONNECTION_STATE; typedef struct st_mysqlnd_connection_state MYSQLND_CONNECTION_STATE;
typedef enum mysqlnd_connection_state (*func_mysqlnd_connection_state__get)(const MYSQLND_CONNECTION_STATE * const state_struct); typedef enum mysqlnd_connection_state (*func_mysqlnd_connection_state__get)(const MYSQLND_CONNECTION_STATE * const state_struct);
typedef void (*func_mysqlnd_connection_state__set)(MYSQLND_CONNECTION_STATE * const state_struct, enum mysqlnd_connection_state state); typedef void (*func_mysqlnd_connection_state__set)(MYSQLND_CONNECTION_STATE * const state_struct, const enum mysqlnd_connection_state state);
MYSQLND_CLASS_METHODS_TYPE(mysqlnd_connection_state) MYSQLND_CLASS_METHODS_TYPE(mysqlnd_connection_state)
@ -889,14 +889,10 @@ struct st_mysqlnd_connection_data
MYSQLND_PROTOCOL_PAYLOAD_DECODER_FACTORY * payload_decoder_factory; MYSQLND_PROTOCOL_PAYLOAD_DECODER_FACTORY * payload_decoder_factory;
/* Information related */ /* Information related */
char *host; MYSQLND_STRING hostname;
unsigned int host_len; MYSQLND_STRING unix_socket;
char *unix_socket; MYSQLND_STRING username;
unsigned int unix_socket_len; MYSQLND_STRING password;
char *user;
unsigned int user_len;
char *passwd;
unsigned int passwd_len;
MYSQLND_STRING scheme; MYSQLND_STRING scheme;
uint64_t thread_id; uint64_t thread_id;
char *server_version; char *server_version;
@ -944,7 +940,7 @@ struct st_mysqlnd_connection_data
/* stats */ /* stats */
MYSQLND_STATS * stats; MYSQLND_STATS * stats;
unsigned int client_api_capabilities; size_t client_api_capabilities;
zval async_read_cb; zval async_read_cb;
zval async_err_cb; zval async_err_cb;