From: Georg Richter Date: Tue, 16 Jul 2002 13:53:54 +0000 (+0000) Subject: Added support for php.ini parameter "mysql.connect_timeout" X-Git-Tag: dev~282 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=950a576f73eb8f658138da3f06f6ca874d1857fc;p=php Added support for php.ini parameter "mysql.connect_timeout" --- diff --git a/ext/mysql/php_mysql.c b/ext/mysql/php_mysql.c index e477fade5b..1eaf4e3c25 100644 --- a/ext/mysql/php_mysql.c +++ b/ext/mysql/php_mysql.c @@ -334,6 +334,7 @@ PHP_INI_BEGIN() STD_PHP_INI_ENTRY("mysql.default_password", NULL, PHP_INI_ALL, OnUpdateString, default_password, zend_mysql_globals, mysql_globals) PHP_INI_ENTRY("mysql.default_port", NULL, PHP_INI_ALL, OnMySQLPort) STD_PHP_INI_ENTRY("mysql.default_socket", NULL, PHP_INI_ALL, OnUpdateStringUnempty, default_socket, zend_mysql_globals, mysql_globals) + STD_PHP_INI_ENTRY_EX("mysql.connect_timeout", "0", PHP_INI_SYSTEM, OnUpdateInt, connect_timeout, zend_mysql_globals, mysql_globals, display_link_numbers) PHP_INI_END() /* }}} */ @@ -348,6 +349,7 @@ static void php_mysql_init_globals(zend_mysql_globals *mysql_globals) mysql_globals->default_password = NULL; mysql_globals->connect_errno = 0; mysql_globals->connect_error = NULL; + mysql_globals->connect_timeout = 0; } /* }}} */ @@ -472,7 +474,9 @@ static void php_mysql_do_connect(INTERNAL_FUNCTION_PARAMETERS, int persistent) void (*handler) (int); zval **z_host=NULL, **z_user=NULL, **z_passwd=NULL, **z_new_link=NULL, **z_client_flags=NULL; zend_bool free_host=0, new_link=0; + long connect_timeout; + connect_timeout = MySG(connect_timeout); socket = MySG(default_socket); if (PG(sql_safe_mode)) { @@ -625,6 +629,10 @@ static void php_mysql_do_connect(INTERNAL_FUNCTION_PARAMETERS, int persistent) mysql->active_result_id = 0; #if MYSQL_VERSION_ID > 32199 /* this lets us set the port number */ mysql_init(&mysql->conn); + + if (connect_timeout != -1) + mysql_options(&mysql->conn, MYSQL_OPT_CONNECT_TIMEOUT, (const char *)&connect_timeout); + if (mysql_real_connect(&mysql->conn, host, user, passwd, NULL, port, socket, client_flags)==NULL) { #else if (mysql_connect(&mysql->conn, host, user, passwd)==NULL) { @@ -718,6 +726,10 @@ static void php_mysql_do_connect(INTERNAL_FUNCTION_PARAMETERS, int persistent) mysql->active_result_id = 0; #if MYSQL_VERSION_ID > 32199 /* this lets us set the port number */ mysql_init(&mysql->conn); + + if (connect_timeout != -1) + mysql_options(&mysql->conn, MYSQL_OPT_CONNECT_TIMEOUT, (const char *)&connect_timeout); + if (mysql_real_connect(&mysql->conn, host, user, passwd, NULL, port, socket, client_flags)==NULL) { #else if (mysql_connect(&mysql->conn, host, user, passwd)==NULL) { diff --git a/ext/mysql/php_mysql.h b/ext/mysql/php_mysql.h index d62b277bed..d94697eae7 100644 --- a/ext/mysql/php_mysql.h +++ b/ext/mysql/php_mysql.h @@ -102,6 +102,7 @@ ZEND_BEGIN_MODULE_GLOBALS(mysql) char *default_socket; char *connect_error; long connect_errno; + long connect_timeout; ZEND_END_MODULE_GLOBALS(mysql) #ifdef ZTS