]> granicus.if.org Git - php/commitdiff
Fix for bug#45179 --with-mysql-sock fails to compile & work
authorAndrey Hristov <andrey@php.net>
Mon, 21 Jul 2008 12:58:51 +0000 (12:58 +0000)
committerAndrey Hristov <andrey@php.net>
Mon, 21 Jul 2008 12:58:51 +0000 (12:58 +0000)
Now --with-mysql-sock controls all mysql extensions. If provided it will be
the default value as it was set in php.ini . php.ini will override it for
ext/mysql and ext/mysqli but not for pdo_mysql

ext/mysql/config.m4
ext/mysql/php_mysql.c
ext/mysql/php_mysql_structs.h
ext/mysqli/mysqli.c
ext/mysqli/php_mysqli_structs.h
ext/pdo_mysql/config.m4
ext/pdo_mysql/mysql_driver.c
ext/pdo_mysql/pdo_mysql.c
ext/pdo_mysql/php_pdo_mysql_int.h

index 6a73ad63b7611a8874968ed2334082ba1cc204f6..8de15e8bbb91a61983a3072425b65e1bfd54ae07 100644 (file)
@@ -31,7 +31,7 @@ AC_DEFUN([PHP_MYSQL_SOCKET_SEARCH], [
   done
 
   if test -n "$MYSQL_SOCK"; then
-    AC_DEFINE_UNQUOTED(MYSQL_UNIX_ADDR, "$MYSQL_SOCK", [ ])
+    AC_DEFINE_UNQUOTED(PHP_MYSQL_UNIX_SOCK_ADDR, "$MYSQL_SOCK", [ ])
     AC_MSG_RESULT([$MYSQL_SOCK])
   else
     AC_MSG_RESULT([no])
@@ -45,7 +45,7 @@ PHP_ARG_WITH(mysql, for MySQL support,
                           the MySQL native driver will be used [/usr/local]])
 
 PHP_ARG_WITH(mysql-sock, for specified location of the MySQL UNIX socket,
-[  --with-mysql-sock[=DIR]   MySQL: Location of the MySQL unix socket pointer.
+[  --with-mysql-sock[=DIR]   MySQL/MySQLi/PDO_MYSQL: Location of the MySQL unix socket pointer.
                             If unspecified, the default locations are searched], no, no)
 
 if test -z "$PHP_ZLIB_DIR"; then
@@ -62,7 +62,7 @@ elif test "$PHP_MYSQL" != "no"; then
   AC_MSG_CHECKING([for MySQL UNIX socket location])
   if test "$PHP_MYSQL_SOCK" != "no" && test "$PHP_MYSQL_SOCK" != "yes"; then
     MYSQL_SOCK=$PHP_MYSQL_SOCK
-    AC_DEFINE_UNQUOTED(MYSQL_UNIX_ADDR, "$MYSQL_SOCK", [ ])
+    AC_DEFINE_UNQUOTED(PHP_MYSQL_UNIX_SOCK_ADDR, "$MYSQL_SOCK", [ ])
     AC_MSG_RESULT([$MYSQL_SOCK])
   elif test "$PHP_MYSQL" = "yes" || test "$PHP_MYSQL_SOCK" = "yes"; then
     PHP_MYSQL_SOCKET_SEARCH
index f38aff2957dee254f524b1c42b1d40d0b36405b8..a70a5e5b6b8a94b41777f12b4cc766d143253adf 100644 (file)
@@ -397,7 +397,11 @@ PHP_INI_BEGIN()
        STD_PHP_INI_ENTRY("mysql.default_user",                 NULL,   PHP_INI_ALL,            OnUpdateString,         default_user,           zend_mysql_globals,             mysql_globals)
        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)
+#ifdef MYSQL_UNIX_ADDR
+       STD_PHP_INI_ENTRY("mysql.default_socket",               MYSQL_UNIX_ADDR,PHP_INI_ALL,OnUpdateStringUnempty,      default_socket, zend_mysql_globals,             mysql_globals)
+#else
        STD_PHP_INI_ENTRY("mysql.default_socket",               NULL,   PHP_INI_ALL,            OnUpdateStringUnempty,  default_socket, zend_mysql_globals,             mysql_globals)
+#endif
        STD_PHP_INI_ENTRY("mysql.connect_timeout",              "60",   PHP_INI_ALL,            OnUpdateLong,           connect_timeout,        zend_mysql_globals,             mysql_globals)
        STD_PHP_INI_BOOLEAN("mysql.trace_mode",                 "0",    PHP_INI_ALL,            OnUpdateLong,           trace_mode,             zend_mysql_globals,             mysql_globals)
        STD_PHP_INI_BOOLEAN("mysql.allow_local_infile", "1",    PHP_INI_SYSTEM,         OnUpdateLong,           allow_local_infile, zend_mysql_globals,         mysql_globals)
index c353e88a25f0f5efdc8dc8f032c54e1711462fad..6220e351d1bcc79d18f23e4e978bce7f34d0f708 100644 (file)
 #include <mysql.h>
 #endif
 
+#ifdef PHP_MYSQL_UNIX_SOCK_ADDR
+#ifdef MYSQL_UNIX_ADDR
+#undef MYSQL_UNIX_ADDR
+#endif
+#define MYSQL_UNIX_ADDR PHP_MYSQL_UNIX_SOCK_ADDR
+#endif
+
 #if (MYSQL_VERSION_ID >= 40113 && MYSQL_VERSION_ID < 50000) || MYSQL_VERSION_ID >= 50007 || MYSQL_USE_MYSQLND
 #define MYSQL_HAS_SET_CHARSET
 #endif
index a1b26bdaaf57f1028afd7788bbc28780c5cd48cc..3056913d93e865df356c459784365ecfcc3b8edf 100644 (file)
@@ -638,7 +638,11 @@ PHP_INI_BEGIN()
        STD_PHP_INI_ENTRY("mysqli.default_user",                        NULL,   PHP_INI_ALL,            OnUpdateString,         default_user,           zend_mysqli_globals,            mysqli_globals)
        STD_PHP_INI_ENTRY("mysqli.default_pw",                          NULL,   PHP_INI_ALL,            OnUpdateString,         default_pw,                     zend_mysqli_globals,            mysqli_globals)
        STD_PHP_INI_ENTRY("mysqli.default_port",                        "3306", PHP_INI_ALL,            OnUpdateLong,           default_port,           zend_mysqli_globals,            mysqli_globals)
+#ifdef PHP_MYSQL_UNIX_SOCK_ADDR
+       STD_PHP_INI_ENTRY("mysqli.default_socket",                      MYSQL_UNIX_ADDR,PHP_INI_ALL,OnUpdateStringUnempty,      default_socket, zend_mysqli_globals,            mysqli_globals)
+#else
        STD_PHP_INI_ENTRY("mysqli.default_socket",                      NULL,   PHP_INI_ALL,            OnUpdateStringUnempty,  default_socket, zend_mysqli_globals,            mysqli_globals)
+#endif
        STD_PHP_INI_BOOLEAN("mysqli.reconnect",                         "0",    PHP_INI_SYSTEM,         OnUpdateLong,           reconnect,                      zend_mysqli_globals,            mysqli_globals)
        STD_PHP_INI_BOOLEAN("mysqli.allow_local_infile",        "1",    PHP_INI_SYSTEM,         OnUpdateLong,           allow_local_infile,     zend_mysqli_globals,            mysqli_globals)
 #ifdef MYSQLI_USE_MYSQLND
index d763806a852378e4ca094bce3db82f012b5acb35..bf79c0f77f9adcef361ab5d0b91994916e9d0339 100644 (file)
 #include "mysqli_libmysql.h"
 #endif
 
+#ifdef PHP_MYSQL_UNIX_SOCK_ADDR
+#ifdef MYSQL_UNIX_ADDR
+#undef MYSQL_UNIX_ADDR
+#endif
+#define MYSQL_UNIX_ADDR PHP_MYSQL_UNIX_SOCK_ADDR
+#endif
+
 #include "php_mysqli.h"
 
 /* character set support */
index 0a74e0c9be68b753c34d24d7fe643a4b81a44665..f2352b77ca7bcbc71a835d6c1f8dbc622925fa58 100755 (executable)
@@ -96,8 +96,12 @@ if test "$PHP_PDO_MYSQL" != "no"; then
     PDO_MYSQL_INCLUDE=-I$PDO_MYSQL_INC_DIR
   fi
 
-  AC_DEFINE_UNQUOTED(PDO_MYSQL_UNIX_ADDR, "$PDO_MYSQL_SOCKET", [ ])
 
+  if test "$PHP_MYSQL_SOCK" != "no" && test "$PHP_MYSQL_SOCK" != "yes"; then
+    AC_DEFINE_UNQUOTED(PDO_MYSQL_UNIX_ADDR, "$PHP_MYSQL_SOCK", [ ])  
+  else
+    AC_DEFINE_UNQUOTED(PDO_MYSQL_UNIX_ADDR, "$PDO_MYSQL_SOCKET", [ ])
+  fi
 
   PHP_CHECK_LIBRARY($PDO_MYSQL_LIBNAME, mysql_query,
   [
index e59388bf8f79514fe16e3f8abd82bc9b90296b77..ba945a2c0651986d238f360fdc794c9da7346ffc 100755 (executable)
@@ -423,13 +423,6 @@ static struct pdo_dbh_methods mysql_methods = {
        pdo_mysql_check_liveness
 };
 
-#ifndef PDO_MYSQL_UNIX_ADDR
-# ifdef PHP_WIN32
-#  define PDO_MYSQL_UNIX_ADDR  "MySQL"
-# else
-#  define PDO_MYSQL_UNIX_ADDR  "/tmp/mysql.sock"
-# endif
-#endif
 
 static int pdo_mysql_handle_factory(pdo_dbh_t *dbh, zval *driver_options TSRMLS_DC) /* {{{ */
 {
index 4dccd01b2afce2b372f894a21dedacf259f2b0e5..0000f8b40c08518eede0f181ef5f454305fc964a 100755 (executable)
@@ -102,6 +102,7 @@ PHP_MINFO_FUNCTION(pdo_mysql)
 {
        php_info_print_table_start();
        php_info_print_table_header(2, "PDO Driver for MySQL, client library version", mysql_get_client_info());
+       php_info_print_table_row(2, "MYSQL_SOCKET", PDO_MYSQL_UNIX_ADDR);
        php_info_print_table_end();
 }
 /* }}} */
index d896bbc15ace05ffd0d892d7e7387393a90a0f00..65bcbd2a2b0be3a85f25e34aafadabb83419dbf0 100755 (executable)
@@ -87,4 +87,13 @@ enum {
        PDO_MYSQL_ATTR_MAX_BUFFER_SIZE,
        PDO_MYSQL_ATTR_DIRECT_QUERY,
 };
+
+#ifndef PDO_MYSQL_UNIX_ADDR
+# ifdef PHP_WIN32
+#  define PDO_MYSQL_UNIX_ADDR  "MySQL"
+# else
+#  define PDO_MYSQL_UNIX_ADDR  "/tmp/mysql.sock"
+# endif
+#endif
+
 #endif