summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrey Hristov <andrey@php.net>2013-01-09 18:58:29 +0100
committerAndrey Hristov <andrey@php.net>2013-01-09 18:58:29 +0100
commit258c76eb41a7eaf8e1e7b4994fa5f268c2060039 (patch)
treeee8b848a95cef6fd6ea0390ba2462e2352247541
parentbcd278ad7f3a8e549a3281600decd897dd7d73ce (diff)
downloadphp-git-258c76eb41a7eaf8e1e7b4994fa5f268c2060039.tar.gz
backport handling of expired passwords in mysqlnd to 5.4
-rw-r--r--ext/mysqlnd/mysqlnd.c9
-rw-r--r--ext/mysqlnd/mysqlnd_enum_n_def.h7
2 files changed, 14 insertions, 2 deletions
diff --git a/ext/mysqlnd/mysqlnd.c b/ext/mysqlnd/mysqlnd.c
index db0a111a5c..0b81ac99fa 100644
--- a/ext/mysqlnd/mysqlnd.c
+++ b/ext/mysqlnd/mysqlnd.c
@@ -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:
diff --git a/ext/mysqlnd/mysqlnd_enum_n_def.h b/ext/mysqlnd/mysqlnd_enum_n_def.h
index 56a2bf99b3..92f6cb3e28 100644
--- a/ext/mysqlnd/mysqlnd_enum_n_def.h
+++ b/ext/mysqlnd/mysqlnd_enum_n_def.h
@@ -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