Skip to content

Commit 258c76e

Browse files
committed
backport handling of expired passwords in mysqlnd to 5.4
1 parent bcd278a commit 258c76e

File tree

2 files changed

+14
-2
lines changed

2 files changed

+14
-2
lines changed

ext/mysqlnd/mysqlnd.c

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2286,7 +2286,7 @@ MYSQLND_METHOD(mysqlnd_conn_data, set_client_option)(MYSQLND_CONN_DATA * const c
22862286
break;
22872287
#endif
22882288
case MYSQL_OPT_LOCAL_INFILE:
2289-
if (!value || (*(unsigned int*) value) ? 1 : 0) {
2289+
if (value && (*(unsigned int*) value) ? 1 : 0) {
22902290
conn->options->flags |= CLIENT_LOCAL_FILES;
22912291
} else {
22922292
conn->options->flags &= ~CLIENT_LOCAL_FILES;
@@ -2370,6 +2370,13 @@ MYSQLND_METHOD(mysqlnd_conn_data, set_client_option)(MYSQLND_CONN_DATA * const c
23702370
DBG_INF_FMT("auth_protocol=%s", conn->options->auth_protocol);
23712371
break;
23722372
}
2373+
case MYSQL_OPT_CAN_HANDLE_EXPIRED_PASSWORDS:
2374+
if (value && (*(unsigned int*) value) ? 1 : 0) {
2375+
conn->options->flags |= CLIENT_CAN_HANDLE_EXPIRED_PASSWORDS;
2376+
} else {
2377+
conn->options->flags &= ~CLIENT_CAN_HANDLE_EXPIRED_PASSWORDS;
2378+
}
2379+
break;
23732380
#ifdef WHEN_SUPPORTED_BY_MYSQLI
23742381
case MYSQL_SHARED_MEMORY_BASE_NAME:
23752382
case MYSQL_OPT_USE_RESULT:

ext/mysqlnd/mysqlnd_enum_n_def.h

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -95,7 +95,9 @@
9595
#define CLIENT_MULTI_RESULTS (1UL << 17) /* Enable/disable multi-results */
9696
#define CLIENT_PS_MULTI_RESULTS (1UL << 18) /* Multi-results in PS-protocol */
9797
#define CLIENT_PLUGIN_AUTH (1UL << 19) /* Client supports plugin authentication */
98-
98+
#define CLIENT_CONNECT_ATTRS (1UL << 20) /* Client supports connection attributes */
99+
#define CLIENT_PLUGIN_AUTH_LENENC_CLIENT_DATA (1UL << 21) /* Enable authentication response packet to be larger than 255 bytes. */
100+
#define CLIENT_CAN_HANDLE_EXPIRED_PASSWORDS (1UL << 22) /* Don't close the connection for a connection with expired password. */
99101
#define CLIENT_SSL_VERIFY_SERVER_CERT (1UL << 30)
100102

101103
#define MYSQLND_CAPABILITIES (CLIENT_LONG_PASSWORD | CLIENT_LONG_FLAG | CLIENT_TRANSACTIONS | \
@@ -164,6 +166,9 @@ typedef enum mysqlnd_option
164166
MYSQL_OPT_SSL_VERIFY_SERVER_CERT,
165167
MYSQL_PLUGIN_DIR,
166168
MYSQL_DEFAULT_AUTH,
169+
MYSQL_SERVER_PUBLIC_KEY,
170+
MYSQL_ENABLE_CLEARTEXT_PLUGIN,
171+
MYSQL_OPT_CAN_HANDLE_EXPIRED_PASSWORDS,
167172
#if MYSQLND_UNICODE
168173
MYSQLND_OPT_NUMERIC_AND_DATETIME_AS_UNICODE = 200,
169174
#endif

0 commit comments

Comments
 (0)