]> granicus.if.org Git - php/commitdiff
backport handling of expired passwords in mysqlnd to 5.4
authorAndrey Hristov <andrey@php.net>
Wed, 9 Jan 2013 17:58:29 +0000 (18:58 +0100)
committerAndrey Hristov <andrey@php.net>
Wed, 9 Jan 2013 17:58:29 +0000 (18:58 +0100)
ext/mysqlnd/mysqlnd.c
ext/mysqlnd/mysqlnd_enum_n_def.h

index db0a111a5c74f0e10cd44ace40ab8910683cffb0..0b81ac99fa2b8ac9504c318d38494612558b3899 100644 (file)
@@ -2286,7 +2286,7 @@ MYSQLND_METHOD(mysqlnd_conn_data, set_client_option)(MYSQLND_CONN_DATA * const c
                        break;
 #endif
                case MYSQL_OPT_LOCAL_INFILE:
-                       if (!value || (*(unsigned int*) value) ? 1 : 0) {
+                       if (value && (*(unsigned int*) value) ? 1 : 0) {
                                conn->options->flags |= CLIENT_LOCAL_FILES;
                        } else {
                                conn->options->flags &= ~CLIENT_LOCAL_FILES;
@@ -2370,6 +2370,13 @@ MYSQLND_METHOD(mysqlnd_conn_data, set_client_option)(MYSQLND_CONN_DATA * const c
                        DBG_INF_FMT("auth_protocol=%s", conn->options->auth_protocol);
                        break;
                }
+               case MYSQL_OPT_CAN_HANDLE_EXPIRED_PASSWORDS:
+                       if (value && (*(unsigned int*) value) ? 1 : 0) {
+                               conn->options->flags |= CLIENT_CAN_HANDLE_EXPIRED_PASSWORDS;
+                       } else {
+                               conn->options->flags &= ~CLIENT_CAN_HANDLE_EXPIRED_PASSWORDS;
+                       }
+                       break;
 #ifdef WHEN_SUPPORTED_BY_MYSQLI
                case MYSQL_SHARED_MEMORY_BASE_NAME:
                case MYSQL_OPT_USE_RESULT:
index 56a2bf99b3ff6654eb5cb87f1a62a394f4a6f43a..92f6cb3e2829252936ff69cd7df51ec7eaec63ce 100644 (file)
@@ -95,7 +95,9 @@
 #define CLIENT_MULTI_RESULTS           (1UL << 17) /* Enable/disable multi-results */
 #define CLIENT_PS_MULTI_RESULTS                (1UL << 18) /* Multi-results in PS-protocol */
 #define CLIENT_PLUGIN_AUTH                     (1UL << 19) /* Client supports plugin authentication */
-
+#define CLIENT_CONNECT_ATTRS           (1UL << 20) /* Client supports connection attributes */
+#define CLIENT_PLUGIN_AUTH_LENENC_CLIENT_DATA  (1UL << 21) /* Enable authentication response packet to be larger than 255 bytes. */
+#define CLIENT_CAN_HANDLE_EXPIRED_PASSWORDS            (1UL << 22) /* Don't close the connection for a connection with expired password. */
 #define CLIENT_SSL_VERIFY_SERVER_CERT (1UL << 30)
 
 #define MYSQLND_CAPABILITIES (CLIENT_LONG_PASSWORD | CLIENT_LONG_FLAG | CLIENT_TRANSACTIONS | \
@@ -164,6 +166,9 @@ typedef enum mysqlnd_option
        MYSQL_OPT_SSL_VERIFY_SERVER_CERT,
        MYSQL_PLUGIN_DIR,
        MYSQL_DEFAULT_AUTH,
+       MYSQL_SERVER_PUBLIC_KEY,
+       MYSQL_ENABLE_CLEARTEXT_PLUGIN,
+       MYSQL_OPT_CAN_HANDLE_EXPIRED_PASSWORDS,
 #if MYSQLND_UNICODE
        MYSQLND_OPT_NUMERIC_AND_DATETIME_AS_UNICODE = 200,
 #endif