]> granicus.if.org Git - php/commitdiff
Fixed bug #51242 (Empty mysql.default_port does not default to 3306 anymore, but 0).
authorAdam Harvey <aharvey@php.net>
Tue, 9 Mar 2010 05:08:31 +0000 (05:08 +0000)
committerAdam Harvey <aharvey@php.net>
Tue, 9 Mar 2010 05:08:31 +0000 (05:08 +0000)
ext/mysql/tests/bug51242.phpt [new file with mode: 0644]
ext/mysql/tests/skipifnotmysqlnd.inc [new file with mode: 0644]
ext/mysqlnd/mysqlnd.c

diff --git a/ext/mysql/tests/bug51242.phpt b/ext/mysql/tests/bug51242.phpt
new file mode 100644 (file)
index 0000000..9b62cdb
--- /dev/null
@@ -0,0 +1,38 @@
+--TEST--
+Bug #51242 (Empty mysql.default_port does not default to 3306 anymore, but 0)
+--INI--
+mysql.default_port=
+mysql.default_socket=/this/does/not/really/need/to/exist
+--SKIPIF--
+<?php
+require_once('skipif.inc');
+require_once('skipifnotmysqlnd.inc');
+
+// Specific to this bug: we need to be able to connect via TCP. We'll use
+// 127.0.0.1:3306 as a (hopefully) moderately sensible default if the hostname
+// is actually specified as localhost.
+if ($host == 'localhost') {
+    $host = '127.0.0.1';
+}
+
+if (!@mysql_connect("$host:3306", $user, $passwd)) {
+    die("skip mysql not available at $host:3306");
+}
+?>
+--FILE--
+<?php
+require_once('connect.inc');
+
+if ($host == 'localhost') {
+    $host = '127.0.0.1';
+}
+
+if ($link = my_mysql_connect($host, $user, $passwd, $db, null, $socket)) {
+    var_dump($link);
+} else {
+    printf("[001] Cannot connect to the server using host=%s, user=%s, passwd=***, dbname=%s, port=%s, socket=%s\n",
+            $host, $user, $db, null, $socket);
+}
+?>
+--EXPECTF--
+resource(%d) of type (mysql link)
diff --git a/ext/mysql/tests/skipifnotmysqlnd.inc b/ext/mysql/tests/skipifnotmysqlnd.inc
new file mode 100644 (file)
index 0000000..9cccdc7
--- /dev/null
@@ -0,0 +1,5 @@
+<?php
+if (strpos(mysql_get_client_info(), 'mysqlnd') === false) {
+       die('skip mysqlnd extension not available');
+}
+?>
index 55d2f2468dbfcb4c1acaf842a1ed76d6fd9118eb..7940cead3a6e9198159201b45291eff4dc28820d 100644 (file)
@@ -527,9 +527,6 @@ MYSQLND_METHOD(mysqlnd_conn, connect)(MYSQLND *conn,
                db = "";
                db_len = 0;
        }
-       if (!port && !socket) {
-               port = 3306;
-       }
        host_len = strlen(host);
 #ifndef PHP_WIN32
        if (host_len == sizeof("localhost") - 1 && !strncasecmp(host, "localhost", host_len)) {
@@ -541,6 +538,10 @@ MYSQLND_METHOD(mysqlnd_conn, connect)(MYSQLND *conn,
        } else
 #endif
        {
+               if (!port) {
+                       port = 3306;
+               }
+
                transport_len = spprintf(&transport, 0, "tcp://%s:%d", host, port);
        }
        DBG_INF_FMT("transport=%s", transport);