uw                                       Mon, 19 Oct 2009 12:09:48 +0000

Revision: http://svn.php.net/viewvc?view=revision&revision=289741

Log:
Fixing host info for TCP/IP and aligning mysqlnd and libmysql

Changed paths:
    U   php/php-src/branches/PHP_5_3/ext/mysqli/tests/mysqli_get_host_info.phpt
    U   php/php-src/branches/PHP_5_3/ext/mysqlnd/mysqlnd.c
    U   php/php-src/trunk/ext/mysqli/tests/mysqli_get_host_info.phpt
    U   php/php-src/trunk/ext/mysqlnd/mysqlnd.c

Modified: 
php/php-src/branches/PHP_5_3/ext/mysqli/tests/mysqli_get_host_info.phpt
===================================================================
--- php/php-src/branches/PHP_5_3/ext/mysqli/tests/mysqli_get_host_info.phpt     
2009-10-19 05:29:50 UTC (rev 289740)
+++ php/php-src/branches/PHP_5_3/ext/mysqli/tests/mysqli_get_host_info.phpt     
2009-10-19 12:09:48 UTC (rev 289741)
@@ -20,6 +20,11 @@
        if (!is_string($info = mysqli_get_host_info($link)) || ('' === $info))
                printf("[003] Expecting string/any_non_empty, got %s/%s\n", 
gettype($info), $info);

+       if ($IS_MYSQLND && $host != 'localhost' && $host != '127.0.0.1' && 
$port != '' && $host != "" && strtoupper(substr(PHP_OS, 0, 3)) != 'WIN') {
+               /* this should be a TCP/IP connection and not a Unix Socket (or 
SHM or Named Pipe) */
+               if (!stristr($info, "TCP/IP"))
+                       printf("[004] Should be a TCP/IP connection but mysqlnd 
says '%s'\n", $info);
+       }
        print "done!";
 ?>
 --CLEAN--

Modified: php/php-src/branches/PHP_5_3/ext/mysqlnd/mysqlnd.c
===================================================================
--- php/php-src/branches/PHP_5_3/ext/mysqlnd/mysqlnd.c  2009-10-19 05:29:50 UTC 
(rev 289740)
+++ php/php-src/branches/PHP_5_3/ext/mysqlnd/mysqlnd.c  2009-10-19 12:09:48 UTC 
(rev 289741)
@@ -728,11 +728,12 @@
                conn->user                              = pestrdup(user, 
conn->persistent);
                conn->passwd                    = pestrndup(passwd, passwd_len, 
conn->persistent);
                conn->port                              = port;
-               if (host && !socket) {
+
+               if (!unix_socket) {
                        char *p;

                        conn->host = pestrdup(host, conn->persistent);
-                       spprintf(&p, 0, "MySQL host info: %s via TCP/IP", 
conn->host);
+                       spprintf(&p, 0, "%s via TCP/IP", conn->host);
                        if (conn->persistent) {
                                conn->host_info = pestrdup(p, 1);
                                mnd_efree(p);
@@ -741,7 +742,7 @@
                        }
                } else {
                        conn->unix_socket       = pestrdup(socket, 
conn->persistent);
-                       conn->host_info         = pestrdup("MySQL host info: 
Localhost via UNIX socket", conn->persistent);
+                       conn->host_info         = pestrdup("Localhost via UNIX 
socket", conn->persistent);
                }
                conn->client_flag               = auth_packet->client_flags;
                conn->max_packet_size   = auth_packet->max_packet_size;

Modified: php/php-src/trunk/ext/mysqli/tests/mysqli_get_host_info.phpt
===================================================================
--- php/php-src/trunk/ext/mysqli/tests/mysqli_get_host_info.phpt        
2009-10-19 05:29:50 UTC (rev 289740)
+++ php/php-src/trunk/ext/mysqli/tests/mysqli_get_host_info.phpt        
2009-10-19 12:09:48 UTC (rev 289741)
@@ -20,6 +20,11 @@
        if (!is_string($info = mysqli_get_host_info($link)) || ('' === $info))
                printf("[003] Expecting string/any_non_empty, got %s/%s\n", 
gettype($info), $info);

+       if ($IS_MYSQLND && $host != 'localhost' && $host != '127.0.0.1' && 
$port != '' && $host != "" && strtoupper(substr(PHP_OS, 0, 3)) != 'WIN') {
+               /* this should be a TCP/IP connection and not a Unix Socket (or 
SHM or Named Pipe) */
+               if (!stristr($info, "TCP/IP"))
+                       printf("[004] Should be a TCP/IP connection but mysqlnd 
says '%s'\n", $info);
+       }
        print "done!";
 ?>
 --CLEAN--

Modified: php/php-src/trunk/ext/mysqlnd/mysqlnd.c
===================================================================
--- php/php-src/trunk/ext/mysqlnd/mysqlnd.c     2009-10-19 05:29:50 UTC (rev 
289740)
+++ php/php-src/trunk/ext/mysqlnd/mysqlnd.c     2009-10-19 12:09:48 UTC (rev 
289741)
@@ -728,11 +728,12 @@
                conn->user                              = pestrdup(user, 
conn->persistent);
                conn->passwd                    = pestrndup(passwd, passwd_len, 
conn->persistent);
                conn->port                              = port;
-               if (host && !socket) {
+
+               if (!unix_socket) {
                        char *p;

                        conn->host = pestrdup(host, conn->persistent);
-                       spprintf(&p, 0, "MySQL host info: %s via TCP/IP", 
conn->host);
+                       spprintf(&p, 0, "%s via TCP/IP", conn->host);
                        if (conn->persistent) {
                                conn->host_info = pestrdup(p, 1);
                                mnd_efree(p);
@@ -741,7 +742,7 @@
                        }
                } else {
                        conn->unix_socket       = pestrdup(socket, 
conn->persistent);
-                       conn->host_info         = pestrdup("MySQL host info: 
Localhost via UNIX socket", conn->persistent);
+                       conn->host_info         = pestrdup("Localhost via UNIX 
socket", conn->persistent);
                }
                conn->client_flag               = auth_packet->client_flags;
                conn->max_packet_size   = auth_packet->max_packet_size;

-- 
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to