Author: ahristov
Date: 2007-07-06 17:57:19 +0200 (Fri, 06 Jul 2007)
New Revision: 670
Modified:
trunk/mysqlnd/mysqlnd.c
trunk/mysqlnd/mysqlnd.h
trunk/php4/ext/mysql/config.m4
trunk/php4/ext/mysql/php_mysql.c
trunk/php5/ext/mysql/php_mysql.c
trunk/php5/ext/mysqli/config9.m4
trunk/php5/ext/mysqli/mysqli.c
trunk/php6/ext/mysql/php_mysql.c
trunk/php6/ext/mysqli/config9.m4
trunk/php6/ext/mysqli/mysqli.c
Log:
Make mysqlnd a module. You need to rebuild your configure!
Modified: trunk/mysqlnd/mysqlnd.c
===================================================================
--- trunk/mysqlnd/mysqlnd.c 2007-07-06 15:55:55 UTC (rev 669)
+++ trunk/mysqlnd/mysqlnd.c 2007-07-06 15:57:19 UTC (rev 670)
@@ -28,6 +28,7 @@
#include "mysqlnd_charset.h"
#include "ext/standard/basic_functions.h"
#include "ext/standard/php_lcg.h"
+#include "ext/standard/info.h"
#define MYSQLND_SILENT
@@ -1521,7 +1522,133 @@
/* }}} */
+/* {{{ mysqlnd_functions[]
+ *
+ * Every user visible function must have an entry in mysqlnd_functions[].
+ */
+static zend_function_entry mysqlnd_functions[] = {
+ {NULL, NULL, NULL} /* Must be the last line in mysqlnd_functions[] */
+};
+/* }}} */
+
+/* {{{ PHP_MINIT_FUNCTION
+ */
+PHP_MINIT_FUNCTION(mysqlnd)
+{
+ mysqlnd_library_init();
+ return SUCCESS;
+}
+/* }}} */
+
+
+/* {{{ PHP_MSHUTDOWN_FUNCTION
+ */
+PHP_MSHUTDOWN_FUNCTION(mysqlnd)
+{
+ mysqlnd_library_end();
+ return SUCCESS;
+}
+/* }}} */
+
+
+/* {{{ mysqlnd_minfo_print_hash */
+#if PHP_MAJOR_VERSION >= 6
+PHPAPI void mysqlnd_minfo_print_hash(zval *values)
+{
+ zval **values_entry;
+ HashPosition pos_values;
+
+ zend_hash_internal_pointer_reset_ex(Z_ARRVAL_P(values), &pos_values);
+ while (zend_hash_get_current_data_ex(Z_ARRVAL_P(values),
+ (void **)&values_entry, &pos_values) == SUCCESS) {
+ TSRMLS_FETCH();
+ zstr string_key;
+ uint string_key_len;
+ ulong num_key;
+ char *s = NULL;
+
+ zend_hash_get_current_key_ex(Z_ARRVAL_P(values), &string_key, &string_key_len,
&num_key, 0, &pos_values);
+
+ convert_to_string(*values_entry);
+
+ if (UG(unicode)) {
+ int s_len;
+ if (zend_unicode_to_string(ZEND_U_CONVERTER(UG(runtime_encoding_conv)),
+ &s, &s_len, string_key.u, string_key_len TSRMLS_CC) == SUCCESS) {
+ php_info_print_table_row(2, s, Z_STRVAL_PP(values_entry));
+ }
+ if (s) {
+ efree(s);
+ }
+ } else {
+ php_info_print_table_row(2, string_key.s, Z_STRVAL_PP(values_entry));
+ }
+
+ zend_hash_move_forward_ex(Z_ARRVAL_P(values), &pos_values);
+ }
+}
+#else
+void mysqlnd_minfo_print_hash(zval *values)
+{
+ zval **values_entry;
+ HashPosition pos_values;
+
+ zend_hash_internal_pointer_reset_ex(Z_ARRVAL_P(values), &pos_values);
+ while (zend_hash_get_current_data_ex(Z_ARRVAL_P(values), (void **)&values_entry,
&pos_values) == SUCCESS) {
+ char *string_key;
+ uint string_key_len;
+ ulong num_key;
+
+ zend_hash_get_current_key_ex(Z_ARRVAL_P(values), &string_key, &string_key_len,
&num_key, 0, &pos_values);
+
+ convert_to_string(*values_entry);
+ php_info_print_table_row(2, string_key, Z_STRVAL_PP(values_entry));
+
+ zend_hash_move_forward_ex(Z_ARRVAL_P(values), &pos_values);
+ }
+}
+#endif
+/* }}} */
+
+
+/* {{{ PHP_MINFO_FUNCTION
+ */
+PHP_MINFO_FUNCTION(mysqlnd)
+{
+ zval values;
+
+ php_info_print_table_start();
+ php_info_print_table_header(2, "mysqlnd", "enabled");
+ php_info_print_table_row(2, "Version", mysqlnd_get_client_info());
+
+ /* Print client stats */
+ php_info_print_table_header(2, "Client statistics", "");
+ mysqlnd_get_client_stats(&values);
+ mysqlnd_minfo_print_hash(&values);
+ zval_dtor(&values);
+ php_info_print_table_end();
+}
+/* }}} */
+
+
+/* {{{ mysqlnd_module_entry
+ */
+zend_module_entry mysqlnd_module_entry = {
+ STANDARD_MODULE_HEADER,
+ "mysqlnd",
+ mysqlnd_functions,
+ PHP_MINIT(mysqlnd),
+ PHP_MSHUTDOWN(mysqlnd),
+ NULL,
+ NULL,
+ PHP_MINFO(mysqlnd),
+ MYSQLND_VERSION,
+ STANDARD_MODULE_PROPERTIES
+};
+/* }}} */
+
+
/*
* Local variables:
* tab-width: 4
Modified: trunk/mysqlnd/mysqlnd.h
===================================================================
--- trunk/mysqlnd/mysqlnd.h 2007-07-06 15:55:55 UTC (rev 669)
+++ trunk/mysqlnd/mysqlnd.h 2007-07-06 15:57:19 UTC (rev 670)
@@ -26,7 +26,10 @@
#define MYSQLND_VERSION "mysqlnd 5.0.2-dev - 070702 - $Revision$"
#define MYSQLND_VERSION_ID 50002
+#define phpext_mysqlnd_ptr &mysqlnd_module_entry
+extern zend_module_entry mysqlnd_module_entry;
+
/* This forces inlining of some accessor functions */
#define MYSQLND_USE_OPTIMISATIONS 0
@@ -642,6 +645,7 @@
PHPAPI void mysqlnd_library_end();
PHPAPI void mysqlnd_restart_psession(MYSQLND *conn);
PHPAPI void mysqlnd_end_psession(MYSQLND *conn);
+PHPAPI void mysqlnd_minfo_print_hash(zval *values);
#define mysqlnd_thread_safe() TRUE
PHPAPI const MYSQLND_CHARSET * mysqlnd_find_charset_nr(uint charsetno);
Modified: trunk/php4/ext/mysql/config.m4
===================================================================
--- trunk/php4/ext/mysql/config.m4 2007-07-06 15:55:55 UTC (rev 669)
+++ trunk/php4/ext/mysql/config.m4 2007-07-06 15:57:19 UTC (rev 670)
@@ -91,6 +91,8 @@
mysqlnd/mysqlnd_result.c mysqlnd/mysqlnd_result_meta.c"
PHP_NEW_EXTENSION(mysql, php_mysql.c $sources, $ext_shared,,-I@ext_srcdir@/mysqlnd)
+ EXT_STATIC="$EXT_STATIC mysqlnd"
+ EXT_CLI_STATIC="$EXT_CLI_STATIC mysqlnd"
PHP_ADD_BUILD_DIR($ext_builddir/mysqlnd)
echo > ext/mysql/php_have_mysqlnd.h
test "$PHP_MYSQL" = "mysqlnd" && PHP_DEFINE(HAVE_MYSQLND, 1, [ext/mysql])
Modified: trunk/php4/ext/mysql/php_mysql.c
===================================================================
--- trunk/php4/ext/mysql/php_mysql.c 2007-07-06 15:55:55 UTC (rev 669)
+++ trunk/php4/ext/mysql/php_mysql.c 2007-07-06 15:57:19 UTC (rev 670)
@@ -214,10 +214,23 @@
};
/* }}} */
+/* Dependancies */
+static zend_module_dep mysql_deps[] = {
+#if defined(HAVE_MYSQLND)
+ ZEND_MOD_REQUIRED("mysqlnd")
+#endif
+ {NULL, NULL, NULL}
+};
+
/* {{{ mysql_module_entry
*/
zend_module_entry mysql_module_entry = {
- STANDARD_MODULE_HEADER,
+#if ZEND_MODULE_API_NO >= 20050922
+ STANDARD_MODULE_HEADER_EX, NULL,
+ mysql_deps,
+#elif ZEND_MODULE_API_NO >= 20010901
+ STANDARD_MODULE_HEADER,
+#endif
"mysql",
mysql_functions,
ZEND_MODULE_STARTUP_N(mysql),
Modified: trunk/php5/ext/mysql/php_mysql.c
===================================================================
--- trunk/php5/ext/mysql/php_mysql.c 2007-07-06 15:55:55 UTC (rev 669)
+++ trunk/php5/ext/mysql/php_mysql.c 2007-07-06 15:57:19 UTC (rev 670)
@@ -220,10 +220,23 @@
};
/* }}} */
+/* Dependancies */
+static zend_module_dep mysql_deps[] = {
+#if defined(HAVE_MYSQLND)
+ ZEND_MOD_REQUIRED("mysqlnd")
+#endif
+ {NULL, NULL, NULL}
+};
+
/* {{{ mysql_module_entry
*/
zend_module_entry mysql_module_entry = {
- STANDARD_MODULE_HEADER,
+#if ZEND_MODULE_API_NO >= 20050922
+ STANDARD_MODULE_HEADER_EX, NULL,
+ mysql_deps,
+#elif ZEND_MODULE_API_NO >= 20010901
+ STANDARD_MODULE_HEADER,
+#endif
"mysql",
mysql_functions,
ZEND_MODULE_STARTUP_N(mysql),
Modified: trunk/php5/ext/mysqli/config9.m4
===================================================================
--- trunk/php5/ext/mysqli/config9.m4 2007-07-06 15:55:55 UTC (rev 669)
+++ trunk/php5/ext/mysqli/config9.m4 2007-07-06 15:57:19 UTC (rev 670)
@@ -97,6 +97,8 @@
PHP_ADD_SOURCES(ext/mysqli/mysqlnd, $mysqlnd_sources)
PHP_ADD_BUILD_DIR([ext/mysqli/mysqlnd])
+ EXT_STATIC="$EXT_STATIC mysqlnd"
+ EXT_CLI_STATIC="$EXT_CLI_STATIC mysqlnd"
PHP_INSTALL_HEADERS([ext/mysqli/mysqlnd])
fi
Modified: trunk/php5/ext/mysqli/mysqli.c
===================================================================
--- trunk/php5/ext/mysqli/mysqli.c 2007-07-06 15:55:55 UTC (rev 669)
+++ trunk/php5/ext/mysqli/mysqli.c 2007-07-06 15:57:19 UTC (rev 670)
@@ -466,6 +466,9 @@
#if defined(HAVE_SPL) && ((PHP_MAJOR_VERSION > 5) || (PHP_MAJOR_VERSION == 5
&& PHP_MINOR_VERSION >= 1))
ZEND_MOD_REQUIRED("spl")
#endif
+#if defined(HAVE_MYSQLND)
+ ZEND_MOD_REQUIRED("mysqlnd")
+#endif
{NULL, NULL, NULL}
};
@@ -775,31 +778,7 @@
}
/* }}} */
-/* {{{ mysqli_minfo_print_hash */
-#ifdef HAVE_MYSQLND
-static
-void mysqli_minfo_print_hash(zval *values)
-{
- zval **values_entry;
- HashPosition pos_values;
- zend_hash_internal_pointer_reset_ex(Z_ARRVAL_P(values), &pos_values);
- while (zend_hash_get_current_data_ex(Z_ARRVAL_P(values), (void **)&values_entry,
&pos_values) == SUCCESS) {
- char *string_key;
- uint string_key_len;
- ulong num_key;
-
- zend_hash_get_current_key_ex(Z_ARRVAL_P(values), &string_key, &string_key_len,
&num_key, 0, &pos_values);
-
- convert_to_string(*values_entry);
- php_info_print_table_row(2, string_key, Z_STRVAL_PP(values_entry));
-
- zend_hash_move_forward_ex(Z_ARRVAL_P(values), &pos_values);
- }
-}
-#endif
-/* }}} */
-
/* {{{ PHP_MINFO_FUNCTION
*/
PHP_MINFO_FUNCTION(mysqli)
@@ -814,17 +793,12 @@
{
zval values;
- /* Print client stats */
- php_info_print_table_header(2, "Client statistics", "");
- mysqlnd_get_client_stats(&values);
- mysqli_minfo_print_hash(&values);
- zval_dtor(&values);
php_info_print_table_header(2, "Persistent cache", mysqli_mysqlnd_zval_cache?
"enabled":"disabled");
if (mysqli_mysqlnd_zval_cache) {
/* Now report cache status */
mysqlnd_palloc_stats(mysqli_mysqlnd_zval_cache, &values);
- mysqli_minfo_print_hash(&values);
+ mysqlnd_minfo_print_hash(&values);
zval_dtor(&values);
}
}
Modified: trunk/php6/ext/mysql/php_mysql.c
===================================================================
--- trunk/php6/ext/mysql/php_mysql.c 2007-07-06 15:55:55 UTC (rev 669)
+++ trunk/php6/ext/mysql/php_mysql.c 2007-07-06 15:57:19 UTC (rev 670)
@@ -218,10 +218,23 @@
};
/* }}} */
+/* Dependancies */
+static zend_module_dep mysql_deps[] = {
+#if defined(HAVE_MYSQLND)
+ ZEND_MOD_REQUIRED("mysqlnd")
+#endif
+ {NULL, NULL, NULL}
+};
+
/* {{{ mysql_module_entry
*/
zend_module_entry mysql_module_entry = {
- STANDARD_MODULE_HEADER,
+#if ZEND_MODULE_API_NO >= 20050922
+ STANDARD_MODULE_HEADER_EX, NULL,
+ mysql_deps,
+#elif ZEND_MODULE_API_NO >= 20010901
+ STANDARD_MODULE_HEADER,
+#endif
"mysql",
mysql_functions,
ZEND_MODULE_STARTUP_N(mysql),
@@ -432,7 +445,6 @@
REGISTER_LONG_CONSTANT("MYSQL_CLIENT_IGNORE_SPACE", CLIENT_IGNORE_SPACE, CONST_CS |
CONST_PERSISTENT);
#ifdef HAVE_MYSQLND
- mysqlnd_library_init();
mysql_mysqlnd_zval_cache = mysqlnd_palloc_init_cache(MySG(cache_size));
mysql_mysqlnd_qcache = mysqlnd_qcache_init_cache();
#endif
@@ -466,7 +478,6 @@
#ifdef HAVE_MYSQLND
mysqlnd_palloc_free_cache(mysql_mysqlnd_zval_cache);
mysqlnd_qcache_free_cache_reference(&mysql_mysqlnd_qcache);
- mysqlnd_library_end();
#endif
UNREGISTER_INI_ENTRIES();
Modified: trunk/php6/ext/mysqli/config9.m4
===================================================================
--- trunk/php6/ext/mysqli/config9.m4 2007-07-06 15:55:55 UTC (rev 669)
+++ trunk/php6/ext/mysqli/config9.m4 2007-07-06 15:57:19 UTC (rev 670)
@@ -96,6 +96,8 @@
PHP_ADD_SOURCES(ext/mysqli/mysqlnd, $mysqlnd_sources)
PHP_ADD_BUILD_DIR([ext/mysqli/mysqlnd])
+ EXT_STATIC="$EXT_STATIC mysqlnd"
+ EXT_CLI_STATIC="$EXT_CLI_STATIC mysqlnd"
PHP_INSTALL_HEADERS([ext/mysqli/mysqlnd])
fi
Modified: trunk/php6/ext/mysqli/mysqli.c
===================================================================
--- trunk/php6/ext/mysqli/mysqli.c 2007-07-06 15:55:55 UTC (rev 669)
+++ trunk/php6/ext/mysqli/mysqli.c 2007-07-06 15:57:19 UTC (rev 670)
@@ -469,6 +469,9 @@
#if defined(HAVE_SPL) && ((PHP_MAJOR_VERSION > 5) || (PHP_MAJOR_VERSION == 5
&& PHP_MINOR_VERSION >= 1))
ZEND_MOD_REQUIRED("spl")
#endif
+#if defined(HAVE_MYSQLND)
+ ZEND_MOD_REQUIRED("mysqlnd")
+#endif
{NULL, NULL, NULL}
};
@@ -554,7 +557,6 @@
REGISTER_INI_ENTRIES();
#ifdef HAVE_MYSQLND
- mysqlnd_library_init();
mysqli_mysqlnd_zval_cache = mysqlnd_palloc_init_cache(MyG(cache_size));
mysqli_mysqlnd_qcache = mysqlnd_qcache_init_cache();
#endif
@@ -746,7 +748,6 @@
#ifdef HAVE_MYSQLND
mysqlnd_palloc_free_cache(mysqli_mysqlnd_zval_cache);
mysqlnd_qcache_free_cache_reference(&mysqli_mysqlnd_qcache);
- mysqlnd_library_end();
#endif
UNREGISTER_INI_ENTRIES();
return SUCCESS;
@@ -782,47 +783,6 @@
/* }}} */
-/* {{{ mysqli_minfo_print_hash */
-#ifdef HAVE_MYSQLND
-static
-void mysqli_minfo_print_hash(zval *values)
-{
- zval **values_entry;
- HashPosition pos_values;
-
- zend_hash_internal_pointer_reset_ex(Z_ARRVAL_P(values), &pos_values);
- while (zend_hash_get_current_data_ex(Z_ARRVAL_P(values),
- (void **)&values_entry, &pos_values) == SUCCESS) {
- TSRMLS_FETCH();
- zstr string_key;
- uint string_key_len;
- ulong num_key;
- char *s = NULL;
-
- zend_hash_get_current_key_ex(Z_ARRVAL_P(values), &string_key, &string_key_len,
&num_key, 0, &pos_values);
-
- convert_to_string(*values_entry);
-
- if (UG(unicode)) {
- int s_len;
- if (zend_unicode_to_string(ZEND_U_CONVERTER(UG(runtime_encoding_conv)),
- &s, &s_len, string_key.u, string_key_len TSRMLS_CC) == SUCCESS) {
- php_info_print_table_row(2, s, Z_STRVAL_PP(values_entry));
- }
- if (s) {
- efree(s);
- }
- } else {
- php_info_print_table_row(2, string_key.s, Z_STRVAL_PP(values_entry));
- }
-
- zend_hash_move_forward_ex(Z_ARRVAL_P(values), &pos_values);
- }
-}
-#endif
-/* }}} */
-
-
/* {{{ PHP_MINFO_FUNCTION
*/
PHP_MINFO_FUNCTION(mysqli)
@@ -830,31 +790,19 @@
php_info_print_table_start();
php_info_print_table_header(2, "MysqlI Support", "enabled");
php_info_print_table_row(2, "Client API library version", mysql_get_client_info());
- php_info_print_table_row(2, "Client library",
#if !defined(HAVE_MYSQLND)
- "libmysql"
-#else
- "mysqlnd"
-#endif
- );
-#if !defined(HAVE_MYSQLND)
php_info_print_table_row(2, "Client API header version", MYSQL_SERVER_VERSION);
php_info_print_table_row(2, "MYSQLI_SOCKET", MYSQL_UNIX_ADDR);
#else
{
zval values;
- /* Print client stats */
- php_info_print_table_header(2, "Client statistics", "");
- mysqlnd_get_client_stats(&values);
- mysqli_minfo_print_hash(&values);
- zval_dtor(&values);
php_info_print_table_header(2, "Persistent cache", mysqli_mysqlnd_zval_cache?
"enabled":"disabled");
if (mysqli_mysqlnd_zval_cache) {
/* Now report cache status */
mysqlnd_palloc_stats(mysqli_mysqlnd_zval_cache, &values);
- mysqli_minfo_print_hash(&values);
+ mysqlnd_minfo_print_hash(&values);
zval_dtor(&values);
}
}
| Thread |
|---|
| • PHP mysqlnd svn commit: r670 - in trunk: mysqlnd php4/ext/mysql php5/ext/mysql php5/ext/mysqli php6/ext/mysql php6/ext/mysqli | ahristov | 6 Jul |