]> git.pld-linux.org Git - packages/php.git/blob - php-pdo-ssl.patch
- rel 3; allow parallel installation of multiple apache php so modules (with no apach...
[packages/php.git] / php-pdo-ssl.patch
1 commit 247ce052cd0fc7d0d8ea1a0e7ea2075e9601766a
2 Author: Thomas Orozco <thomas@orozco.fr>
3 Date:   Thu Jun 9 10:45:40 2016 +0200
4
5     Fixed bug #71003: Add PDO::MYSQL_ATTR_SSL_VERIFY_SERVER_CERT
6
7 diff --git a/ext/pdo_mysql/mysql_driver.c b/ext/pdo_mysql/mysql_driver.c
8 index 021ac89b45..1bf4eb039a 100644
9 --- a/ext/pdo_mysql/mysql_driver.c
10 +++ b/ext/pdo_mysql/mysql_driver.c
11 @@ -736,6 +736,18 @@ static int pdo_mysql_handle_factory(pdo_dbh_t *dbh, zval *driver_options)
12                         }
13                 }
14  #endif
15 +
16 +#ifdef PDO_USE_MYSQLND
17 +               {
18 +                       zend_long ssl_verify_cert = pdo_attr_lval(driver_options,
19 +                                       PDO_MYSQL_ATTR_SSL_VERIFY_SERVER_CERT, -1);
20 +                       if (ssl_verify_cert != -1) {
21 +                               connect_opts |= ssl_verify_cert ?
22 +                                       CLIENT_SSL_VERIFY_SERVER_CERT:
23 +                                       CLIENT_SSL_DONT_VERIFY_SERVER_CERT;
24 +                       }
25 +               }
26 +#endif
27         }
28  
29  #ifdef PDO_MYSQL_HAS_CHARSET
30 diff --git a/ext/pdo_mysql/pdo_mysql.c b/ext/pdo_mysql/pdo_mysql.c
31 index 32b85ba547..99fb6d3b77 100644
32 --- a/ext/pdo_mysql/pdo_mysql.c
33 +++ b/ext/pdo_mysql/pdo_mysql.c
34 @@ -130,6 +130,9 @@ static PHP_MINIT_FUNCTION(pdo_mysql)
35          REGISTER_PDO_CLASS_CONST_LONG("MYSQL_ATTR_SERVER_PUBLIC_KEY", (zend_long)PDO_MYSQL_ATTR_SERVER_PUBLIC_KEY);
36  #endif
37         REGISTER_PDO_CLASS_CONST_LONG("MYSQL_ATTR_MULTI_STATEMENTS", (zend_long)PDO_MYSQL_ATTR_MULTI_STATEMENTS);
38 +#ifdef PDO_USE_MYSQLND
39 +       REGISTER_PDO_CLASS_CONST_LONG("MYSQL_ATTR_SSL_VERIFY_SERVER_CERT", (zend_long)PDO_MYSQL_ATTR_SSL_VERIFY_SERVER_CERT);
40 +#endif
41  
42  #ifdef PDO_USE_MYSQLND
43         mysqlnd_reverse_api_register_api(&pdo_mysql_reverse_api);
44 diff --git a/ext/pdo_mysql/php_pdo_mysql_int.h b/ext/pdo_mysql/php_pdo_mysql_int.h
45 index f300e044ba..89884120ab 100644
46 --- a/ext/pdo_mysql/php_pdo_mysql_int.h
47 +++ b/ext/pdo_mysql/php_pdo_mysql_int.h
48 @@ -179,6 +179,9 @@ enum {
49         PDO_MYSQL_ATTR_SERVER_PUBLIC_KEY,
50  #endif
51         PDO_MYSQL_ATTR_MULTI_STATEMENTS,
52 +#ifdef PDO_USE_MYSQLND
53 +       PDO_MYSQL_ATTR_SSL_VERIFY_SERVER_CERT,
54 +#endif
55  };
56  
57  #endif
58 diff --git a/ext/pdo_mysql/tests/pdo_mysql_class_constants.phpt b/ext/pdo_mysql/tests/pdo_mysql_class_constants.phpt
59 index f3d0fa6313..fba1c2433e 100644
60 --- a/ext/pdo_mysql/tests/pdo_mysql_class_constants.phpt
61 +++ b/ext/pdo_mysql/tests/pdo_mysql_class_constants.phpt
62 @@ -27,6 +27,7 @@ if (!extension_loaded('mysqli') && !extension_loaded('mysqlnd')) {
63                 "MYSQL_ATTR_SSL_CIPHER"                                         => true,
64                 "MYSQL_ATTR_COMPRESS"                                           => true,
65                 "MYSQL_ATTR_MULTI_STATEMENTS"                                   => true,
66 +               "MYSQL_ATTR_SSL_VERIFY_SERVER_CERT"                             => true,
67         );
68  
69         if (!MySQLPDOTest::isPDOMySQLnd()) {
This page took 0.0306 seconds and 3 git commands to generate.