List:Commits« Previous MessageNext Message »
From:ahristov Date:January 29 2008 12:59pm
Subject:PHP mysqlnd svn commit: r1235 - trunk/mysqlnd
View as plain text  
Author: ahristov
Date: 2008-01-29 12:59:07 +0100 (Tue, 29 Jan 2008)
New Revision: 1235

Added:
   trunk/mysqlnd/php_mysqlnd.c
Modified:
   trunk/mysqlnd/config.w32
   trunk/mysqlnd/config9.m4
   trunk/mysqlnd/mysqlnd.c
   trunk/mysqlnd/mysqlnd.h
   trunk/mysqlnd/mysqlnd_statistics.c
   trunk/mysqlnd/mysqlnd_statistics.h
   trunk/mysqlnd/mysqlnd_structs.h
Log:
Extension code into separate file


Modified: trunk/mysqlnd/config.w32
===================================================================
--- trunk/mysqlnd/config.w32	2008-01-28 22:48:40 UTC (rev 1234)
+++ trunk/mysqlnd/config.w32	2008-01-29 11:59:07 UTC (rev 1235)
@@ -15,6 +15,7 @@
 		"mysqlnd_result.c " +
 		"mysqlnd_result_meta.c " +
 		"mysqlnd_statistics.c " +
-		"mysqlnd_wireprotocol.c";
+		"mysqlnd_wireprotocol.c" +
+		"php_mysqlnd.c";
 	EXTENSION("mysqlnd", mysqlnd_source, false);
 }

Modified: trunk/mysqlnd/config9.m4
===================================================================
--- trunk/mysqlnd/config9.m4	2008-01-28 22:48:40 UTC (rev 1234)
+++ trunk/mysqlnd/config9.m4	2008-01-29 11:59:07 UTC (rev 1235)
@@ -8,7 +8,7 @@
                    mysqlnd_ps.c mysqlnd_loaddata.c mysqlnd_palloc.c \
                    mysqlnd_ps_codec.c mysqlnd_statistics.c mysqlnd_qcache.c\
 				   mysqlnd_result.c mysqlnd_result_meta.c mysqlnd_debug.c\
-				   mysqlnd_block_alloc.c"
+				   mysqlnd_block_alloc.c php_mysqlnd.c"
 
   PHP_NEW_EXTENSION(mysqlnd, $mysqlnd_sources, no)
   PHP_ADD_BUILD_DIR([ext/mysqlnd], 1)

Modified: trunk/mysqlnd/mysqlnd.c
===================================================================
--- trunk/mysqlnd/mysqlnd.c	2008-01-28 22:48:40 UTC (rev 1234)
+++ trunk/mysqlnd/mysqlnd.c	2008-01-29 11:59:07 UTC (rev 1235)
@@ -28,10 +28,8 @@
 #include "mysqlnd_charset.h"
 #include "mysqlnd_debug.h"
 #include "mysqlnd_block_alloc.h"
-#include "php_ini.h"
 #include "ext/standard/basic_functions.h"
 #include "ext/standard/php_lcg.h"
-#include "ext/standard/info.h"
 
 /* the server doesn't support 4byte utf8, but let's make it forward compatible */
 #define MYSQLND_MAX_ALLOWED_USER_LEN	256  /* 64 char * 4byte */
@@ -129,32 +127,23 @@
 
 
 /* {{{ mysqlnd_library_init */
-static
 void mysqlnd_library_init(TSRMLS_D)
 {
 	if (mysqlnd_library_initted == FALSE) {
 		mysqlnd_library_initted = TRUE;
 		_mysqlnd_init_ps_subsystem();
 		/* Should be calloc, as mnd_calloc will reference LOCK_access*/
-		mysqlnd_global_stats = calloc(1, sizeof(MYSQLND_STATS));
-#ifdef ZTS
-		mysqlnd_global_stats->LOCK_access = tsrm_mutex_alloc();
-#endif
+		mysqlnd_stats_init(&mysqlnd_global_stats);
 	}
 }
 /* }}} */
 
 
 /* {{{ mysqlnd_library_end */
-static
 void mysqlnd_library_end(TSRMLS_D)
 {
 	if (mysqlnd_library_initted == TRUE) {
-#ifdef ZTS
-		tsrm_mutex_free(mysqlnd_global_stats->LOCK_access);
-#endif
-		/* mnd_free will reference LOCK_access and crash...*/
-		free(mysqlnd_global_stats);
+		mysqlnd_stats_end(mysqlnd_global_stats);
 		mysqlnd_global_stats = NULL;
 		mysqlnd_library_initted = FALSE;
 	}
@@ -923,6 +912,21 @@
 /* }}} */
 
 
+/* {{{ mysqlnd_conn::send_query */
+static enum_func_status
+MYSQLND_METHOD(mysqlnd_conn, send_query)(MYSQLND *conn, const char *query, unsigned int
query_len TSRMLS_DC)
+{
+	enum_func_status ret;
+	DBG_ENTER("mysqlnd_conn::query");
+	DBG_INF_FMT("conn=%llu query=%s", conn->thread_id, query);
+
+	DBG_RETURN(mysqlnd_simple_command(conn, COM_QUERY, query, query_len,
+									  PROT_LAST /* we will handle the OK packet*/,
+									  FALSE TSRMLS_CC)));
+}
+/* }}} */
+
+
 /*
   COM_FIELD_LIST is special, different from a SHOW FIELDS FROM :
   - There is no result set header - status from the command, which
@@ -1957,6 +1961,7 @@
 	MYSQLND_METHOD(mysqlnd_conn, escape_string),
 	MYSQLND_METHOD(mysqlnd_conn, set_charset),
 	MYSQLND_METHOD(mysqlnd_conn, query),
+	MYSQLND_METHOD(mysqlnd_conn, send_query),
 	MYSQLND_METHOD(mysqlnd_conn, use_result),
 	MYSQLND_METHOD(mysqlnd_conn, store_result),
 	MYSQLND_METHOD(mysqlnd_conn, background_store_result),
@@ -2038,223 +2043,6 @@
 /* }}} */
 
 
-/* {{{ 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[] */
-};
-/* }}} */
-
-
-/* {{{ 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) {
-				mnd_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)
-{
-	char buf[32];
-	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);
-	php_info_print_table_row(2, "Collecting statistics", MYSQLND_G(collect_statistics)?
"Yes":"No");
-	php_info_print_table_row(2, "Collecting memory statistics",
MYSQLND_G(collect_memory_statistics)? "Yes":"No");
-
-	snprintf(buf, sizeof(buf), "%ld", MYSQLND_G(net_cmd_buffer_size));
-	php_info_print_table_row(2, "Command buffer size", buf);
-	snprintf(buf, sizeof(buf), "%ld", MYSQLND_G(net_read_buffer_size));
-	php_info_print_table_row(2, "Read buffer size", buf);
-
-	zval_dtor(&values);
-	php_info_print_table_end();
-}
-/* }}} */
-
-
-ZEND_DECLARE_MODULE_GLOBALS(mysqlnd);
-
-
-/* {{{ PHP_GINIT_FUNCTION
- */
-static PHP_GINIT_FUNCTION(mysqlnd)
-{
-	mysqlnd_globals->collect_statistics = TRUE;
-	mysqlnd_globals->collect_memory_statistics = FALSE;
-	mysqlnd_globals->debug = NULL;	/* The actual string */
-	mysqlnd_globals->dbg = NULL;	/* The DBG object*/
-	mysqlnd_globals->net_cmd_buffer_size = 2048;
-	mysqlnd_globals->net_read_buffer_size = 32768;
-}
-/* }}} */
-
-
-/* {{{ PHP_INI_BEGIN
-*/
-PHP_INI_BEGIN()
-	STD_PHP_INI_BOOLEAN("mysqlnd.collect_statistics",	"1", 	PHP_INI_ALL,
OnUpdateBool,	collect_statistics, zend_mysqlnd_globals, mysqlnd_globals)
-	STD_PHP_INI_BOOLEAN("mysqlnd.collect_memory_statistics",	"0", 	PHP_INI_SYSTEM,
OnUpdateBool,	collect_memory_statistics, zend_mysqlnd_globals, mysqlnd_globals)
-	STD_PHP_INI_ENTRY("mysqlnd.debug",					NULL, 	PHP_INI_SYSTEM, OnUpdateString,	debug,
zend_mysqlnd_globals, mysqlnd_globals)
-	STD_PHP_INI_ENTRY("mysqlnd.net_cmd_buffer_size",	"2048",	PHP_INI_ALL,	OnUpdateLong,	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)
-PHP_INI_END()
-/* }}} */
-
-
-/* {{{ PHP_MINIT_FUNCTION
- */
-static PHP_MINIT_FUNCTION(mysqlnd)
-{
-	REGISTER_INI_ENTRIES();
-
-	mysqlnd_library_init(TSRMLS_C);
-	return SUCCESS;
-}
-/* }}} */
-
-
-/* {{{ PHP_MSHUTDOWN_FUNCTION
- */
-static PHP_MSHUTDOWN_FUNCTION(mysqlnd)
-{
-	mysqlnd_library_end(TSRMLS_C);
-
-	UNREGISTER_INI_ENTRIES();
-	return SUCCESS;
-}
-/* }}} */
-
-
-#if PHP_DEBUG
-/* {{{ PHP_RINIT_FUNCTION
- */
-static PHP_RINIT_FUNCTION(mysqlnd)
-{
-#ifdef PHP_DEBUG
-	if (MYSQLND_G(debug)) {
-		MYSQLND_DEBUG *dbg = mysqlnd_debug_init(TSRMLS_C);
-		if (!dbg) {
-			return FAILURE;
-		}
-		dbg->m->set_mode(dbg, MYSQLND_G(debug));
-		MYSQLND_G(dbg) = dbg;	
-	}
-#endif
-	return SUCCESS;
-}
-/* }}} */
-
-
-/* {{{ PHP_RSHUTDOWN_FUNCTION
- */
-static PHP_RSHUTDOWN_FUNCTION(mysqlnd)
-{
-#ifdef PHP_DEBUG
-	MYSQLND_DEBUG *dbg = MYSQLND_G(dbg);
-	DBG_ENTER("RSHUTDOWN");
-	if (dbg) {
-		dbg->m->close(dbg);
-		dbg->m->free_handle(dbg);
-		MYSQLND_G(dbg) = NULL;
-	}
-#endif
-	return SUCCESS;
-}
-/* }}} */
-#endif
-
-
-/* {{{ mysqlnd_module_entry
- */
-zend_module_entry mysqlnd_module_entry = {
-	STANDARD_MODULE_HEADER,
-	"mysqlnd",
-	mysqlnd_functions,
-	PHP_MINIT(mysqlnd),
-	PHP_MSHUTDOWN(mysqlnd),
-#if PHP_DEBUG
-	PHP_RINIT(mysqlnd),
-	PHP_RSHUTDOWN(mysqlnd),
-#else
-	NULL,
-	NULL,
-#endif
-	PHP_MINFO(mysqlnd),
-	MYSQLND_VERSION,
-	PHP_MODULE_GLOBALS(mysqlnd),
-	PHP_GINIT(mysqlnd),
-	NULL,
-	NULL,
-	STANDARD_MODULE_PROPERTIES_EX
-};
-/* }}} */
-
-
 /*
  * Local variables:
  * tab-width: 4

Modified: trunk/mysqlnd/mysqlnd.h
===================================================================
--- trunk/mysqlnd/mysqlnd.h	2008-01-28 22:48:40 UTC (rev 1234)
+++ trunk/mysqlnd/mysqlnd.h	2008-01-29 11:59:07 UTC (rev 1235)
@@ -23,7 +23,7 @@
 #ifndef MYSQLND_H
 #define MYSQLND_H
 
-#define MYSQLND_VERSION "mysqlnd 5.0.2-dev - 070928 - $Revision$"
+#define MYSQLND_VERSION "mysqlnd 5.0.3-dev - 080129 - $Revision$"
 #define MYSQLND_VERSION_ID 50002
 
 /* This forces inlining of some accessor functions */
@@ -57,7 +57,12 @@
 #include "mysqlnd_structs.h"
 
 
+
+
 /* Library related */
+void mysqlnd_library_init(TSRMLS_D);
+void mysqlnd_library_end(TSRMLS_D);
+
 #define mysqlnd_restart_psession(conn) _mysqlnd_restart_psession((conn) TSRMLS_CC)
 PHPAPI void _mysqlnd_restart_psession(MYSQLND *conn TSRMLS_DC);
 PHPAPI void mysqlnd_end_psession(MYSQLND *conn);

Modified: trunk/mysqlnd/mysqlnd_statistics.c
===================================================================
--- trunk/mysqlnd/mysqlnd_statistics.c	2008-01-28 22:48:40 UTC (rev 1234)
+++ trunk/mysqlnd/mysqlnd_statistics.c	2008-01-29 11:59:07 UTC (rev 1235)
@@ -145,6 +145,32 @@
 /* }}} */
 
 
+/* {{{ mysqlnd_stats_init */
+void
+mysqlnd_stats_init(MYSQLND_STATS ** stats)
+{
+	*stats = calloc(1, sizeof(MYSQLND_STATS));
+#ifdef ZTS
+	(*stats)->LOCK_access = tsrm_mutex_alloc();
+#endif
+
+}
+/* }}} */
+
+
+/* {{{ mysqlnd_stats_end */
+void
+mysqlnd_stats_end(MYSQLND_STATS * stats)
+{
+#ifdef ZTS
+	tsrm_mutex_free(stats->LOCK_access);
+#endif
+	/* mnd_free will reference LOCK_access and crash...*/
+	free(stats);
+}
+/* }}} */
+
+
 /*
  * Local variables:
  * tab-width: 4

Modified: trunk/mysqlnd/mysqlnd_statistics.h
===================================================================
--- trunk/mysqlnd/mysqlnd_statistics.h	2008-01-28 22:48:40 UTC (rev 1234)
+++ trunk/mysqlnd/mysqlnd_statistics.h	2008-01-29 11:59:07 UTC (rev 1235)
@@ -196,6 +196,10 @@
 void mysqlnd_fill_stats_hash(const MYSQLND_STATS * const stats, zval *return_value
 							 TSRMLS_DC ZEND_FILE_LINE_DC);
 
+
+void mysqlnd_stats_init(MYSQLND_STATS ** stats);
+void mysqlnd_stats_end(MYSQLND_STATS * stats);
+
 #endif	/* MYSQLND_STATISTICS_H */
 
 

Modified: trunk/mysqlnd/mysqlnd_structs.h
===================================================================
--- trunk/mysqlnd/mysqlnd_structs.h	2008-01-28 22:48:40 UTC (rev 1234)
+++ trunk/mysqlnd/mysqlnd_structs.h	2008-01-29 11:59:07 UTC (rev 1235)
@@ -236,6 +236,7 @@
 	ulong				(*escape_string)(const MYSQLND * const conn, char *newstr, const char
*escapestr, size_t escapestr_len TSRMLS_DC);
 	enum_func_status	(*set_charset)(MYSQLND * const conn, const char * const charset
TSRMLS_DC);
 	enum_func_status	(*query)(MYSQLND *conn, const char *query, unsigned int query_len
TSRMLS_DC);
+	enum_func_status	(*send_query)(MYSQLND *conn, const char *query, unsigned int query_len
TSRMLS_DC);
 	MYSQLND_RES *		(*use_result)(MYSQLND * const conn TSRMLS_DC);
 	MYSQLND_RES *		(*store_result)(MYSQLND * const conn TSRMLS_DC);
 	MYSQLND_RES *		(*background_store_result)(MYSQLND * const conn TSRMLS_DC);

Added: trunk/mysqlnd/php_mysqlnd.c
===================================================================
--- trunk/mysqlnd/php_mysqlnd.c	                        (rev 0)
+++ trunk/mysqlnd/php_mysqlnd.c	2008-01-29 11:59:07 UTC (rev 1235)
@@ -0,0 +1,249 @@
+/*
+  +----------------------------------------------------------------------+
+  | PHP Version 6                                                        |
+  +----------------------------------------------------------------------+
+  | Copyright (c) 2006-2008 The PHP Group                                |
+  +----------------------------------------------------------------------+
+  | This source file is subject to version 3.01 of the PHP license,      |
+  | that is bundled with this package in the file LICENSE, and is        |
+  | available through the world-wide-web at the following url:           |
+  | http://www.php.net/license/3_01.txt                                  |
+  | If you did not receive a copy of the PHP license and are unable to   |
+  | obtain it through the world-wide-web, please send a note to          |
+  | license@stripped so we can mail you a copy immediately.               |
+  +----------------------------------------------------------------------+
+  | Authors: Georg Richter <georg@stripped>                             |
+  |          Andrey Hristov <andrey@stripped>                           |
+  |          Ulf Wendel <uwendel@stripped>                              |
+  +----------------------------------------------------------------------+
+*/
+
+/* $Id: mysqlnd.c,v 1.10 2008/01/08 13:13:39 andrey Exp $ */
+#include "php.h"
+#include "php_ini.h"
+#include "mysqlnd.h"
+#include "mysqlnd_priv.h"
+#include "mysqlnd_debug.h"
+#include "ext/standard/info.h"
+
+/* {{{ 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[] */
+};
+/* }}} */
+
+
+/* {{{ 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) {
+				mnd_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)
+{
+	char buf[32];
+	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);
+	php_info_print_table_row(2, "Collecting statistics", MYSQLND_G(collect_statistics)?
"Yes":"No");
+	php_info_print_table_row(2, "Collecting memory statistics",
MYSQLND_G(collect_memory_statistics)? "Yes":"No");
+
+	snprintf(buf, sizeof(buf), "%ld", MYSQLND_G(net_cmd_buffer_size));
+	php_info_print_table_row(2, "Command buffer size", buf);
+	snprintf(buf, sizeof(buf), "%ld", MYSQLND_G(net_read_buffer_size));
+	php_info_print_table_row(2, "Read buffer size", buf);
+
+	zval_dtor(&values);
+	php_info_print_table_end();
+}
+/* }}} */
+
+
+ZEND_DECLARE_MODULE_GLOBALS(mysqlnd);
+
+
+/* {{{ PHP_GINIT_FUNCTION
+ */
+static PHP_GINIT_FUNCTION(mysqlnd)
+{
+	mysqlnd_globals->collect_statistics = TRUE;
+	mysqlnd_globals->collect_memory_statistics = FALSE;
+	mysqlnd_globals->debug = NULL;	/* The actual string */
+	mysqlnd_globals->dbg = NULL;	/* The DBG object*/
+	mysqlnd_globals->net_cmd_buffer_size = 2048;
+	mysqlnd_globals->net_read_buffer_size = 32768;
+}
+/* }}} */
+
+
+/* {{{ PHP_INI_BEGIN
+*/
+PHP_INI_BEGIN()
+	STD_PHP_INI_BOOLEAN("mysqlnd.collect_statistics",	"1", 	PHP_INI_ALL,
OnUpdateBool,	collect_statistics, zend_mysqlnd_globals, mysqlnd_globals)
+	STD_PHP_INI_BOOLEAN("mysqlnd.collect_memory_statistics",	"0", 	PHP_INI_SYSTEM,
OnUpdateBool,	collect_memory_statistics, zend_mysqlnd_globals, mysqlnd_globals)
+	STD_PHP_INI_ENTRY("mysqlnd.debug",					NULL, 	PHP_INI_SYSTEM, OnUpdateString,	debug,
zend_mysqlnd_globals, mysqlnd_globals)
+	STD_PHP_INI_ENTRY("mysqlnd.net_cmd_buffer_size",	"2048",	PHP_INI_ALL,	OnUpdateLong,	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)
+PHP_INI_END()
+/* }}} */
+
+
+/* {{{ PHP_MINIT_FUNCTION
+ */
+static PHP_MINIT_FUNCTION(mysqlnd)
+{
+	REGISTER_INI_ENTRIES();
+
+	mysqlnd_library_init(TSRMLS_C);
+	return SUCCESS;
+}
+/* }}} */
+
+
+/* {{{ PHP_MSHUTDOWN_FUNCTION
+ */
+static PHP_MSHUTDOWN_FUNCTION(mysqlnd)
+{
+	mysqlnd_library_end(TSRMLS_C);
+
+	UNREGISTER_INI_ENTRIES();
+	return SUCCESS;
+}
+/* }}} */
+
+
+#ifdef PHP_DEBUG
+/* {{{ PHP_RINIT_FUNCTION
+ */
+static PHP_RINIT_FUNCTION(mysqlnd)
+{
+	if (MYSQLND_G(debug)) {
+		MYSQLND_DEBUG *dbg = mysqlnd_debug_init(TSRMLS_C);
+		if (!dbg) {
+			return FAILURE;
+		}
+		dbg->m->set_mode(dbg, MYSQLND_G(debug));
+		MYSQLND_G(dbg) = dbg;	
+	}
+	return SUCCESS;
+}
+/* }}} */
+
+
+/* {{{ PHP_RSHUTDOWN_FUNCTION
+ */
+static PHP_RSHUTDOWN_FUNCTION(mysqlnd)
+{
+	MYSQLND_DEBUG *dbg = MYSQLND_G(dbg);
+	DBG_ENTER("RSHUTDOWN");
+	if (dbg) {
+		dbg->m->close(dbg);
+		dbg->m->free_handle(dbg);
+		MYSQLND_G(dbg) = NULL;
+	}
+	return SUCCESS;
+}
+/* }}} */
+#endif
+
+
+/* {{{ mysqlnd_module_entry
+ */
+zend_module_entry mysqlnd_module_entry = {
+	STANDARD_MODULE_HEADER,
+	"mysqlnd",
+	mysqlnd_functions,
+	PHP_MINIT(mysqlnd),
+	PHP_MSHUTDOWN(mysqlnd),
+#ifdef PHP_DEBUG
+	PHP_RINIT(mysqlnd),
+	PHP_RSHUTDOWN(mysqlnd),
+#else
+	NULL,
+	NULL,
+#endif
+	PHP_MINFO(mysqlnd),
+	MYSQLND_VERSION,
+	PHP_MODULE_GLOBALS(mysqlnd),
+	PHP_GINIT(mysqlnd),
+	NULL,
+	NULL,
+	STANDARD_MODULE_PROPERTIES_EX
+};
+/* }}} */
+
+
+/*
+ * Local variables:
+ * tab-width: 4
+ * c-basic-offset: 4
+ * End:
+ * vim600: noet sw=4 ts=4 fdm=marker
+ * vim<600: noet sw=4 ts=4
+ */

Thread
PHP mysqlnd svn commit: r1235 - trunk/mysqlndahristov29 Jan