bug55283.phpt 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
  1. --TEST--
  2. Bug #55283 (SSL options set by mysqli_ssl_set ignored for MySQLi persistent connections)
  3. --SKIPIF--
  4. <?php
  5. require_once('skipif.inc');
  6. require_once('skipifconnectfailure.inc');
  7. require_once("connect.inc");
  8. if ($IS_MYSQLND && !extension_loaded("openssl"))
  9. die("skip PHP streams lack support for SSL. mysqli is compiled to use mysqlnd which uses PHP streams in turn.");
  10. if (!($link = @my_mysqli_connect($host, $user, $passwd, $db, $port, $socket)))
  11. die(sprintf("skip Connect failed, [%d] %s", mysqli_connect_errno(), mysqli_connect_error()));
  12. $row = NULL;
  13. if ($res = $link->query('SHOW VARIABLES LIKE "have_ssl"')) {
  14. $row = $res->fetch_row();
  15. } else {
  16. if ($link->errno == 1064 && ($res = $link->query("SHOW VARIABLES"))) {
  17. while ($row = $res->fetch_row())
  18. if ($row[0] == 'have_ssl')
  19. break;
  20. } else {
  21. die(sprintf("skip Failed to test for MySQL SSL support, [%d] %s", $link->errno, $link->error));
  22. }
  23. }
  24. if (empty($row))
  25. die(sprintf("skip Failed to test for MySQL SSL support, [%d] %s", $link->errno, $link->error));
  26. if (($row[1] == 'NO') || ($row[1] == 'DISABLED'))
  27. die(sprintf("skip MySQL has no SSL support, [%d] %s", $link->errno, $link->error));
  28. $link->close();
  29. ?>
  30. --FILE--
  31. <?php
  32. include "connect.inc";
  33. $db1 = new mysqli();
  34. $flags = MYSQLI_CLIENT_SSL | MYSQLI_CLIENT_SSL_DONT_VERIFY_SERVER_CERT;
  35. $link = mysqli_init();
  36. mysqli_ssl_set($link, null, null, null, null, "RC4-MD5");
  37. if (my_mysqli_real_connect($link, 'p:' . $host, $user, $passwd, $db, $port, null, $flags)) {
  38. $r = $link->query("SHOW STATUS LIKE 'Ssl_cipher'");
  39. var_dump($r->fetch_row());
  40. }
  41. /* non-persistent connection */
  42. $link2 = mysqli_init();
  43. mysqli_ssl_set($link2, null, null, null, null, "RC4-MD5");
  44. if (my_mysqli_real_connect($link2, $host, $user, $passwd, $db, $port, null, $flags)) {
  45. $r2 = $link2->query("SHOW STATUS LIKE 'Ssl_cipher'");
  46. var_dump($r2->fetch_row());
  47. }
  48. echo "done\n";
  49. ?>
  50. --EXPECTF--
  51. array(2) {
  52. [0]=>
  53. string(10) "Ssl_cipher"
  54. [1]=>
  55. string(7) "RC4-MD5"
  56. }
  57. array(2) {
  58. [0]=>
  59. string(10) "Ssl_cipher"
  60. [1]=>
  61. string(7) "RC4-MD5"
  62. }
  63. done