diff options
Diffstat (limited to 'ext/mysqlnd')
-rw-r--r-- | ext/mysqlnd/mysqlnd_charset.c | 2 | ||||
-rw-r--r-- | ext/mysqlnd/mysqlnd_connection.c | 4 | ||||
-rw-r--r-- | ext/mysqlnd/mysqlnd_debug.c | 8 | ||||
-rw-r--r-- | ext/mysqlnd/mysqlnd_debug.h | 3 | ||||
-rw-r--r-- | ext/mysqlnd/mysqlnd_enum_n_def.h | 13 | ||||
-rw-r--r-- | ext/mysqlnd/mysqlnd_net.c | 7 | ||||
-rw-r--r-- | ext/mysqlnd/mysqlnd_result.c | 12 | ||||
-rw-r--r-- | ext/mysqlnd/mysqlnd_statistics.c | 3 | ||||
-rw-r--r-- | ext/mysqlnd/mysqlnd_vio.c | 3 | ||||
-rw-r--r-- | ext/mysqlnd/mysqlnd_wireprotocol.c | 4 | ||||
-rw-r--r-- | ext/mysqlnd/php_mysqlnd.c | 2 |
11 files changed, 32 insertions, 29 deletions
diff --git a/ext/mysqlnd/mysqlnd_charset.c b/ext/mysqlnd/mysqlnd_charset.c index f77521901e..04dcd82295 100644 --- a/ext/mysqlnd/mysqlnd_charset.c +++ b/ext/mysqlnd/mysqlnd_charset.c @@ -410,7 +410,7 @@ static unsigned int check_mb_utf16(const char *start, const char *end) } -static uint mysqlnd_mbcharlen_utf16(unsigned int utf16) +static uint32_t mysqlnd_mbcharlen_utf16(unsigned int utf16) { return UTF16_HIGH_HEAD(utf16) ? 4 : 2; } diff --git a/ext/mysqlnd/mysqlnd_connection.c b/ext/mysqlnd/mysqlnd_connection.c index 2f458149a6..1e0088b54f 100644 --- a/ext/mysqlnd/mysqlnd_connection.c +++ b/ext/mysqlnd/mysqlnd_connection.c @@ -1680,10 +1680,8 @@ MYSQLND_METHOD(mysqlnd_conn_data, set_client_option)(MYSQLND_CONN_DATA * const c goto end; } switch (option) { -#ifdef WHEN_SUPPORTED_BY_MYSQLI case MYSQL_OPT_READ_TIMEOUT: case MYSQL_OPT_WRITE_TIMEOUT: -#endif case MYSQLND_OPT_SSL_KEY: case MYSQLND_OPT_SSL_CERT: case MYSQLND_OPT_SSL_CA: @@ -1865,7 +1863,7 @@ MYSQLND_METHOD(mysqlnd_conn_data, set_client_option_2d)(MYSQLND_CONN_DATA * cons DBG_INF_FMT("Adding [%s][%s]", key, value); { zval attrz; - ZVAL_NEW_STR(&attrz, zend_string_init(value, strlen(value), 1)); + ZVAL_NEW_STR(&attrz, zend_string_init(value, strlen(value), conn->persistent)); zend_hash_str_update(conn->options->connect_attr, key, strlen(key), &attrz); } break; diff --git a/ext/mysqlnd/mysqlnd_debug.c b/ext/mysqlnd/mysqlnd_debug.c index eed01b72f1..409097a559 100644 --- a/ext/mysqlnd/mysqlnd_debug.c +++ b/ext/mysqlnd/mysqlnd_debug.c @@ -249,7 +249,7 @@ MYSQLND_METHOD(mysqlnd_debug, func_enter)(MYSQLND_DEBUG * self, if ((self->flags & MYSQLND_DEBUG_DUMP_TRACE) == 0 || self->file_name == NULL) { return FALSE; } - if ((uint) zend_stack_count(&self->call_stack) >= self->nest_level_limit) { + if ((uint32_t) zend_stack_count(&self->call_stack) >= self->nest_level_limit) { return FALSE; } @@ -320,7 +320,7 @@ MYSQLND_METHOD(mysqlnd_debug, func_leave)(MYSQLND_DEBUG * self, unsigned int lin if ((self->flags & MYSQLND_DEBUG_DUMP_TRACE) == 0 || self->file_name == NULL) { return PASS; } - if ((uint) zend_stack_count(&self->call_stack) >= self->nest_level_limit) { + if ((uint32_t) zend_stack_count(&self->call_stack) >= self->nest_level_limit) { return PASS; } @@ -349,7 +349,7 @@ MYSQLND_METHOD(mysqlnd_debug, func_leave)(MYSQLND_DEBUG * self, unsigned int lin struct st_mysqlnd_dbg_function_profile f_profile_stack = {0}; struct st_mysqlnd_dbg_function_profile * f_profile = NULL; uint64_t own_time = call_time - mine_non_own_time; - uint func_name_len = strlen(*func_name); + uint32_t func_name_len = strlen(*func_name); self->m->log_va(self, line, file, zend_stack_count(&self->call_stack) - 1, NULL, "<%s (total=%u own=%u in_calls=%u)", *func_name, (unsigned int) call_time, (unsigned int) own_time, (unsigned int) mine_non_own_time @@ -401,7 +401,7 @@ MYSQLND_METHOD(mysqlnd_debug, func_leave)(MYSQLND_DEBUG * self, unsigned int lin f_profile->calls = 1; zend_hash_str_add_mem(&self->function_profiles, *func_name, func_name_len, f_profile, sizeof(struct st_mysqlnd_dbg_function_profile)); } - if ((uint) zend_stack_count(&self->call_time_stack)) { + if ((uint32_t) zend_stack_count(&self->call_time_stack)) { uint64_t parent_non_own_time = 0; parent_non_own_time_ptr = zend_stack_top(&self->call_time_stack); diff --git a/ext/mysqlnd/mysqlnd_debug.h b/ext/mysqlnd/mysqlnd_debug.h index e8d4306393..08a3a2b6a2 100644 --- a/ext/mysqlnd/mysqlnd_debug.h +++ b/ext/mysqlnd/mysqlnd_debug.h @@ -82,9 +82,6 @@ PHPAPI MYSQLND_DEBUG * mysqlnd_debug_init(const char * skip_functions[]); #if defined(__GNUC__) || defined(PHP_WIN32) #ifdef PHP_WIN32 #include "win32/time.h" -#elif defined(NETWARE) -#include <sys/timeval.h> -#include <sys/time.h> #else #include <sys/time.h> #endif diff --git a/ext/mysqlnd/mysqlnd_enum_n_def.h b/ext/mysqlnd/mysqlnd_enum_n_def.h index 0a3022058d..21b84ce71f 100644 --- a/ext/mysqlnd/mysqlnd_enum_n_def.h +++ b/ext/mysqlnd/mysqlnd_enum_n_def.h @@ -236,12 +236,25 @@ typedef enum mysqlnd_client_option MYSQL_OPT_SSL_VERIFY_SERVER_CERT, MYSQL_PLUGIN_DIR, MYSQL_DEFAULT_AUTH, + MYSQL_OPT_BIND, + MYSQL_OPT_SSL_KEY, + MYSQL_OPT_SSL_CERT, + MYSQL_OPT_SSL_CA, + MYSQL_OPT_SSL_CAPATH, + MYSQL_OPT_SSL_CIPHER, + MYSQL_OPT_SSL_CRL, + MYSQL_OPT_SSL_CRLPATH, MYSQL_OPT_CONNECT_ATTR_RESET, MYSQL_OPT_CONNECT_ATTR_ADD, MYSQL_OPT_CONNECT_ATTR_DELETE, MYSQL_SERVER_PUBLIC_KEY, MYSQL_ENABLE_CLEARTEXT_PLUGIN, MYSQL_OPT_CAN_HANDLE_EXPIRED_PASSWORDS, + MYSQL_OPT_SSL_ENFORCE, + MYSQL_OPT_MAX_ALLOWED_PACKET, + MYSQL_OPT_NET_BUFFER_LENGTH, + MYSQL_OPT_TLS_VERSION, + MYSQL_OPT_SSL_MODE, MYSQLND_DEPRECATED_ENUM1 = 200, #ifdef MYSQLND_STRING_TO_INT_CONVERSION MYSQLND_OPT_INT_AND_FLOAT_NATIVE = 201, diff --git a/ext/mysqlnd/mysqlnd_net.c b/ext/mysqlnd/mysqlnd_net.c index bd2ac76786..afc9839a49 100644 --- a/ext/mysqlnd/mysqlnd_net.c +++ b/ext/mysqlnd/mysqlnd_net.c @@ -818,13 +818,13 @@ MYSQLND_METHOD(mysqlnd_net, set_client_option)(MYSQLND_NET * const net, enum mys break; } case MYSQL_OPT_READ_TIMEOUT: + DBG_INF("MYSQL_OPT_READ_TIMEOUT"); net->data->options.timeout_read = *(unsigned int*) value; break; -#ifdef WHEN_SUPPORTED_BY_MYSQLI case MYSQL_OPT_WRITE_TIMEOUT: + DBG_INF("MYSQL_OPT_WRITE_TIMEOUT"); net->data->options.timeout_write = *(unsigned int*) value; break; -#endif case MYSQL_OPT_COMPRESS: net->data->options.flags |= MYSQLND_NET_FLAG_USE_COMPRESSION; break; @@ -906,9 +906,6 @@ MYSQLND_METHOD(mysqlnd_net, enable_ssl)(MYSQLND_NET * const net) zend_bool any_flag = FALSE; DBG_ENTER("mysqlnd_net::enable_ssl"); - if (!context) { - DBG_RETURN(FAIL); - } if (net->data->options.ssl_key) { zval key_zval; diff --git a/ext/mysqlnd/mysqlnd_result.c b/ext/mysqlnd/mysqlnd_result.c index 19d78375f4..030ee1e020 100644 --- a/ext/mysqlnd/mysqlnd_result.c +++ b/ext/mysqlnd/mysqlnd_result.c @@ -132,7 +132,7 @@ MYSQLND_METHOD(mysqlnd_result_buffered_c, initialize_result_set_rest)(MYSQLND_RE meta->fields[i].max_length = len; } } - zval_ptr_dtor(¤t_row[i]); + zval_ptr_dtor_nogc(¤t_row[i]); } } mnd_efree(current_row); @@ -156,7 +156,7 @@ MYSQLND_METHOD(mysqlnd_result_unbuffered, free_last_data)(MYSQLND_RES_UNBUFFERED if (unbuf->last_row_data) { unsigned int i; for (i = 0; i < unbuf->field_count; i++) { - zval_ptr_dtor(&(unbuf->last_row_data[i])); + zval_ptr_dtor_nogc(&(unbuf->last_row_data[i])); } /* Free last row's zvals */ @@ -225,7 +225,7 @@ MYSQLND_METHOD(mysqlnd_result_buffered_zval, free_result)(MYSQLND_RES_BUFFERED_Z if (current_row != NULL) { for (col = field_count - 1; col >= 0; --col) { - zval_ptr_dtor(&(current_row[col])); + zval_ptr_dtor_nogc(&(current_row[col])); } } } @@ -1244,7 +1244,7 @@ MYSQLND_METHOD(mysqlnd_result_buffered_c, fetch_row)(MYSQLND_RES * result, void It also simplifies the handling of Z_ADDREF_P because we don't need to check if only either NUM or ASSOC is set but not both. */ - zval_ptr_dtor(data); + zval_ptr_dtor_nogc(data); } mnd_efree(current_row); ++set->current_row; @@ -1396,7 +1396,7 @@ MYSQLND_METHOD(mysqlnd_res, store_result_fetch_data)(MYSQLND_CONN_DATA * const c } DBG_INF_FMT("ret=%s row_count=%u warnings=%u server_status=%u", ret == PASS? "PASS":"FAIL", - (uint) set->row_count, + (uint32_t) set->row_count, UPSERT_STATUS_GET_WARNINGS(conn->upsert_status), UPSERT_STATUS_GET_SERVER_STATUS(conn->upsert_status)); end: @@ -1822,7 +1822,7 @@ MYSQLND_METHOD(mysqlnd_res, fetch_all)(MYSQLND_RES * result, const unsigned int do { mysqlnd_fetch_into(result, flags, &row, MYSQLND_MYSQLI); if (Z_TYPE(row) != IS_ARRAY) { - zval_ptr_dtor(&row); + zval_ptr_dtor_nogc(&row); break; } add_index_zval(return_value, i++, &row); diff --git a/ext/mysqlnd/mysqlnd_statistics.c b/ext/mysqlnd/mysqlnd_statistics.c index 6b4c9e4ae8..f3069b580f 100644 --- a/ext/mysqlnd/mysqlnd_statistics.c +++ b/ext/mysqlnd/mysqlnd_statistics.c @@ -217,9 +217,6 @@ PHPAPI void mysqlnd_stats_init(MYSQLND_STATS ** stats, const size_t statistic_count, const zend_bool persistent) { *stats = pecalloc(1, sizeof(MYSQLND_STATS), persistent); - if (*stats == NULL) { - return; - } (*stats)->values = pecalloc(statistic_count, sizeof(uint64_t), persistent); (*stats)->triggers = pecalloc(statistic_count, sizeof(mysqlnd_stat_trigger), persistent); (*stats)->in_trigger = FALSE; diff --git a/ext/mysqlnd/mysqlnd_vio.c b/ext/mysqlnd/mysqlnd_vio.c index 9a182b1647..4ca4797966 100644 --- a/ext/mysqlnd/mysqlnd_vio.c +++ b/ext/mysqlnd/mysqlnd_vio.c @@ -492,9 +492,6 @@ MYSQLND_METHOD(mysqlnd_vio, enable_ssl)(MYSQLND_VIO * const net) zend_bool any_flag = FALSE; DBG_ENTER("mysqlnd_vio::enable_ssl"); - if (!context) { - DBG_RETURN(FAIL); - } if (net->data->options.ssl_key) { zval key_zval; diff --git a/ext/mysqlnd/mysqlnd_wireprotocol.c b/ext/mysqlnd/mysqlnd_wireprotocol.c index c5039c3d72..74a718b960 100644 --- a/ext/mysqlnd/mysqlnd_wireprotocol.c +++ b/ext/mysqlnd/mysqlnd_wireprotocol.c @@ -1766,6 +1766,10 @@ php_mysqlnd_rowp_read_text_protocol_aux(MYSQLND_MEMORY_POOL_CHUNK * row_buffer, } else if (Z_TYPE_P(current_field) == IS_STRING) { /* nothing to do here, as we want a string and ps_fetch_from_1_to_8_bytes() has given us one */ } + } else if (len == 0) { + ZVAL_EMPTY_STRING(current_field); + } else if (len == 1) { + ZVAL_INTERNED_STR(current_field, ZSTR_CHAR((zend_uchar)*(char *)p)); } else { ZVAL_STRINGL(current_field, (char *)p, len); } diff --git a/ext/mysqlnd/php_mysqlnd.c b/ext/mysqlnd/php_mysqlnd.c index ef62016f65..4757990f6a 100644 --- a/ext/mysqlnd/php_mysqlnd.c +++ b/ext/mysqlnd/php_mysqlnd.c @@ -228,7 +228,7 @@ PHP_INI_BEGIN() STD_PHP_INI_ENTRY("mysqlnd.trace_alloc", NULL, PHP_INI_SYSTEM, OnUpdateString, trace_alloc_settings, zend_mysqlnd_globals, mysqlnd_globals) STD_PHP_INI_ENTRY("mysqlnd.net_cmd_buffer_size", MYSQLND_NET_CMD_BUFFER_MIN_SIZE_STR, PHP_INI_ALL, OnUpdateNetCmdBufferSize, net_cmd_buffer_size, zend_mysqlnd_globals, mysqlnd_globals) STD_PHP_INI_ENTRY("mysqlnd.net_read_buffer_size", "32768",PHP_INI_ALL, OnUpdateLong, net_read_buffer_size, zend_mysqlnd_globals, mysqlnd_globals) - STD_PHP_INI_ENTRY("mysqlnd.net_read_timeout", "31536000", PHP_INI_SYSTEM, OnUpdateLong, net_read_timeout, zend_mysqlnd_globals, mysqlnd_globals) + STD_PHP_INI_ENTRY("mysqlnd.net_read_timeout", "86400",PHP_INI_ALL, OnUpdateLong, net_read_timeout, zend_mysqlnd_globals, mysqlnd_globals) STD_PHP_INI_ENTRY("mysqlnd.log_mask", "0", PHP_INI_ALL, OnUpdateLong, log_mask, zend_mysqlnd_globals, mysqlnd_globals) STD_PHP_INI_ENTRY("mysqlnd.mempool_default_size","16000", PHP_INI_ALL, OnUpdateLong, mempool_default_size, zend_mysqlnd_globals, mysqlnd_globals) STD_PHP_INI_ENTRY("mysqlnd.sha256_server_public_key",NULL, PHP_INI_PERDIR, OnUpdateString, sha256_server_public_key, zend_mysqlnd_globals, mysqlnd_globals) |