1 diff -aur php-5.2.5_p20080206.orig/ext/mysql/php_mysql.c php-5.2.5_p20080206/ext/mysql/php_mysql.c
2 --- php-5.2.5_p20080206.orig/ext/mysql/php_mysql.c 2008-02-06 14:22:57.652600900 +0100
3 +++ php-5.2.5_p20080206/ext/mysql/php_mysql.c 2008-02-06 14:24:40.216655403 +0100
5 PHP_INI_ENTRY("mysql.default_port", NULL, PHP_INI_ALL, OnMySQLPort)
6 STD_PHP_INI_ENTRY("mysql.default_socket", NULL, PHP_INI_ALL, OnUpdateStringUnempty, default_socket, zend_mysql_globals, mysql_globals)
7 STD_PHP_INI_ENTRY("mysql.connect_timeout", "60", PHP_INI_ALL, OnUpdateLong, connect_timeout, zend_mysql_globals, mysql_globals)
8 + STD_PHP_INI_ENTRY("mysql.connect_charset", NULL, PHP_INI_ALL, OnUpdateString, connect_charset, zend_mysql_globals, mysql_globals)
9 STD_PHP_INI_BOOLEAN("mysql.trace_mode", "0", PHP_INI_ALL, OnUpdateLong, trace_mode, zend_mysql_globals, mysql_globals)
13 mysql_globals->connect_errno = 0;
14 mysql_globals->connect_error = NULL;
15 mysql_globals->connect_timeout = 0;
16 + mysql_globals->connect_charset = NULL;
17 mysql_globals->trace_mode = 0;
18 mysql_globals->result_allocated = 0;
22 char *user=NULL, *passwd=NULL, *host_and_port=NULL, *socket=NULL, *tmp=NULL, *host=NULL;
23 int user_len, passwd_len, host_len;
24 + char *connect_charset=NULL;
25 char *hashed_details=NULL;
26 int hashed_details_length, port = MYSQL_PORT;
31 connect_timeout = MySG(connect_timeout);
32 + connect_charset = MySG(connect_charset);
34 socket = MySG(default_socket);
37 mysql_options(&mysql->conn, MYSQL_OPT_CONNECT_TIMEOUT, (const char *)&connect_timeout);
40 + if (connect_charset != NULL)
41 + mysql_options(&mysql->conn, MYSQL_SET_CHARSET_NAME, connect_charset);
43 if (mysql_real_connect(&mysql->conn, host, user, passwd, NULL, port, socket, client_flags)==NULL) {
45 if (mysql_connect(&mysql->conn, host, user, passwd)==NULL) {
47 signal(SIGPIPE, handler);
48 #endif /* end mysql_ping */
49 #if MYSQL_VERSION_ID > 32199 /* this lets us set the port number */
50 + if (connect_charset != NULL)
51 + mysql_options(le->ptr, MYSQL_SET_CHARSET_NAME, connect_charset);
53 if (mysql_real_connect(le->ptr, host, user, passwd, NULL, port, socket, client_flags)==NULL) {
55 if (mysql_connect(le->ptr, host, user, passwd)==NULL) {
57 mysql_options(&mysql->conn, MYSQL_OPT_CONNECT_TIMEOUT, (const char *)&connect_timeout);
60 + if (connect_charset != NULL)
61 + mysql_options(&mysql->conn, MYSQL_SET_CHARSET_NAME, connect_charset);
63 if (mysql_real_connect(&mysql->conn, host, user, passwd, NULL, port, socket, client_flags)==NULL) {
65 if (mysql_connect(&mysql->conn, host, user, passwd)==NULL) {
66 diff -aur php-5.2.5_p20080206.orig/ext/mysql/php_mysql_structs.h php-5.2.5_p20080206/ext/mysql/php_mysql_structs.h
67 --- php-5.2.5_p20080206.orig/ext/mysql/php_mysql_structs.h 2008-02-06 14:22:57.510605687 +0100
68 +++ php-5.2.5_p20080206/ext/mysql/php_mysql_structs.h 2008-02-06 14:23:27.764590355 +0100
71 char *default_host, *default_user, *default_password;
73 + char *connect_charset;