From 287d5f277e57f55142a30f291e358a417f6f4021 Mon Sep 17 00:00:00 2001 From: Sterling Hughes Date: Sun, 1 Jun 2003 02:29:28 +0000 Subject: [PATCH] don't do this on startup, lazy initialize it. This takes up > 17% of load time in CGI mode --- ext/mysql/php_mysql.c | 39 ++++++++++++++++++++++----------------- 1 file changed, 22 insertions(+), 17 deletions(-) diff --git a/ext/mysql/php_mysql.c b/ext/mysql/php_mysql.c index 95ef068e30..3d31ff2e5c 100644 --- a/ext/mysql/php_mysql.c +++ b/ext/mysql/php_mysql.c @@ -283,24 +283,12 @@ static void _close_mysql_plink(zend_rsrc_list_entry *rsrc TSRMLS_DC) */ static PHP_INI_MH(OnMySQLPort) { - if (new_value==NULL) { /* default port */ -#if !defined(PHP_WIN32) && !defined(NETWARE) - struct servent *serv_ptr; - char *env; - - MySG(default_port) = MYSQL_PORT; - if ((serv_ptr = getservbyname("mysql", "tcp"))) { - MySG(default_port) = (uint) ntohs((ushort) serv_ptr->s_port); - } - if ((env = getenv("MYSQL_TCP_PORT"))) { - MySG(default_port) = (uint) atoi(env); - } -#else - MySG(default_port) = MYSQL_PORT; -#endif - } else { + if (new_value != NULL) { /* default port */ MySG(default_port) = atoi(new_value); + } else { + MySG(default_port) = -1; } + return SUCCESS; } /* }}} */ @@ -348,7 +336,7 @@ ZEND_MODULE_STARTUP_D(mysql) le_link = zend_register_list_destructors_ex(_close_mysql_link, NULL, "mysql link", module_number); le_plink = zend_register_list_destructors_ex(NULL, _close_mysql_plink, "mysql link persistent", module_number); Z_TYPE(mysql_module_entry) = type; - + REGISTER_LONG_CONSTANT("MYSQL_ASSOC", MYSQL_ASSOC, CONST_CS | CONST_PERSISTENT); REGISTER_LONG_CONSTANT("MYSQL_NUM", MYSQL_NUM, CONST_CS | CONST_PERSISTENT); REGISTER_LONG_CONSTANT("MYSQL_BOTH", MYSQL_BOTH, CONST_CS | CONST_PERSISTENT); @@ -476,6 +464,23 @@ static void php_mysql_do_connect(INTERNAL_FUNCTION_PARAMETERS, int persistent) socket = MySG(default_socket); + if (MySG(default_port) < 0) { +#if !defined(PHP_WIN32) && !defined(NETWARE) + struct servent *serv_ptr; + char *env; + + MySG(default_port) = MYSQL_PORT; + if ((serv_ptr = getservbyname("mysql", "tcp"))) { + MySG(default_port) = (uint) ntohs((ushort) serv_ptr->s_port); + } + if ((env = getenv("MYSQL_TCP_PORT"))) { + MySG(default_port) = (uint) atoi(env); + } +#else + MySG(default_port) = MYSQL_PORT; +#endif + } + if (PG(sql_safe_mode)) { if (ZEND_NUM_ARGS()>0) { php_error_docref(NULL TSRMLS_CC, E_NOTICE, "SQL safe mode in effect - ignoring host/user/password information"); -- 2.40.0