From c15c5c0ed34f8100835ce45ec78f5e931c5bf423 Mon Sep 17 00:00:00 2001 From: Kamil Tekiela Date: Mon, 19 Jan 2026 18:23:46 +0000 Subject: [PATCH 1/5] Remove MYSQL_OPT_PROTOCOL and MYSQL_OPT_NAMED_PIPE --- ext/mysqli/mysqli_api.c | 2 -- ext/mysqlnd/mysqlnd_connection.c | 8 -------- ext/mysqlnd/mysqlnd_enum_n_def.h | 4 ++-- ext/mysqlnd/mysqlnd_structs.h | 1 - 4 files changed, 2 insertions(+), 13 deletions(-) diff --git a/ext/mysqli/mysqli_api.c b/ext/mysqli/mysqli_api.c index 1bf74dd77eeab..6f833788e26a6 100644 --- a/ext/mysqli/mysqli_api.c +++ b/ext/mysqli/mysqli_api.c @@ -1158,8 +1158,6 @@ static int mysqli_options_get_option_zval_type(int option) case MYSQLND_OPT_INT_AND_FLOAT_NATIVE: case MYSQL_OPT_CONNECT_TIMEOUT: case MYSQL_OPT_LOCAL_INFILE: - case MYSQL_OPT_NAMED_PIPE: - case MYSQL_OPT_PROTOCOL: case MYSQL_OPT_READ_TIMEOUT: case MYSQL_OPT_WRITE_TIMEOUT: case MYSQL_OPT_SSL_VERIFY_SERVER_CERT: diff --git a/ext/mysqlnd/mysqlnd_connection.c b/ext/mysqlnd/mysqlnd_connection.c index 4a9732a028956..5e5ea5064209d 100644 --- a/ext/mysqlnd/mysqlnd_connection.c +++ b/ext/mysqlnd/mysqlnd_connection.c @@ -1484,14 +1484,6 @@ MYSQLND_METHOD(mysqlnd_conn_data, set_client_option)(MYSQLND_CONN_DATA * const c DBG_INF_FMT("charset=%s", conn->options->charset_name); break; } - case MYSQL_OPT_NAMED_PIPE: - conn->options->protocol = MYSQL_PROTOCOL_PIPE; - break; - case MYSQL_OPT_PROTOCOL: - if (*(unsigned int*) value < MYSQL_PROTOCOL_LAST) { - conn->options->protocol = *(unsigned int*) value; - } - break; case MYSQLND_OPT_MAX_ALLOWED_PACKET: if (*(unsigned int*) value > (1<<16)) { conn->options->max_allowed_packet = *(unsigned int*) value; diff --git a/ext/mysqlnd/mysqlnd_enum_n_def.h b/ext/mysqlnd/mysqlnd_enum_n_def.h index 851174032c404..9d556abce5563 100644 --- a/ext/mysqlnd/mysqlnd_enum_n_def.h +++ b/ext/mysqlnd/mysqlnd_enum_n_def.h @@ -196,14 +196,14 @@ typedef enum mysqlnd_client_option { MYSQL_OPT_CONNECT_TIMEOUT, MYSQL_OPT_COMPRESS, - MYSQL_OPT_NAMED_PIPE, + MYSQL_OPT_NAMED_PIPE, /* Unsupported by mysqlnd */ MYSQL_INIT_COMMAND, MYSQL_READ_DEFAULT_FILE, MYSQL_READ_DEFAULT_GROUP, MYSQL_SET_CHARSET_DIR, /* Unsupported by mysqlnd */ MYSQL_SET_CHARSET_NAME, MYSQL_OPT_LOCAL_INFILE, - MYSQL_OPT_PROTOCOL, + MYSQL_OPT_PROTOCOL, /* Unsupported by mysqlnd */ MYSQL_SHARED_MEMORY_BASE_NAME, /* Unsupported by mysqlnd */ MYSQL_OPT_READ_TIMEOUT, MYSQL_OPT_WRITE_TIMEOUT, diff --git a/ext/mysqlnd/mysqlnd_structs.h b/ext/mysqlnd/mysqlnd_structs.h index ce102650b03c9..049fa3598e93b 100644 --- a/ext/mysqlnd/mysqlnd_structs.h +++ b/ext/mysqlnd/mysqlnd_structs.h @@ -222,7 +222,6 @@ typedef struct st_mysqlnd_session_options char * unused2; char * unused3; - enum_mysqlnd_session_protocol_type protocol; char *charset_name; /* maximum allowed packet size for communication */ From 6ce6877eb63e6d3892e826ffe6bc07c3ed582352 Mon Sep 17 00:00:00 2001 From: Kamil Tekiela Date: Mon, 19 Jan 2026 19:35:32 +0000 Subject: [PATCH 2/5] Remove MYSQL_OPT_WRITE_TIMEOUT --- ext/mysqli/mysqli_api.c | 1 - ext/mysqlnd/mysqlnd_connection.c | 1 - ext/mysqlnd/mysqlnd_enum_n_def.h | 2 +- ext/mysqlnd/mysqlnd_vio.c | 5 ----- 4 files changed, 1 insertion(+), 8 deletions(-) diff --git a/ext/mysqli/mysqli_api.c b/ext/mysqli/mysqli_api.c index 6f833788e26a6..b792c71907ab3 100644 --- a/ext/mysqli/mysqli_api.c +++ b/ext/mysqli/mysqli_api.c @@ -1159,7 +1159,6 @@ static int mysqli_options_get_option_zval_type(int option) case MYSQL_OPT_CONNECT_TIMEOUT: case MYSQL_OPT_LOCAL_INFILE: case MYSQL_OPT_READ_TIMEOUT: - case MYSQL_OPT_WRITE_TIMEOUT: case MYSQL_OPT_SSL_VERIFY_SERVER_CERT: case MYSQL_OPT_COMPRESS: case MYSQL_OPT_CAN_HANDLE_EXPIRED_PASSWORDS: diff --git a/ext/mysqlnd/mysqlnd_connection.c b/ext/mysqlnd/mysqlnd_connection.c index 5e5ea5064209d..f50c47158cbd6 100644 --- a/ext/mysqlnd/mysqlnd_connection.c +++ b/ext/mysqlnd/mysqlnd_connection.c @@ -1411,7 +1411,6 @@ MYSQLND_METHOD(mysqlnd_conn_data, set_client_option)(MYSQLND_CONN_DATA * const c switch (option) { case MYSQL_OPT_READ_TIMEOUT: - case MYSQL_OPT_WRITE_TIMEOUT: case MYSQLND_OPT_SSL_KEY: case MYSQLND_OPT_SSL_CERT: case MYSQLND_OPT_SSL_CA: diff --git a/ext/mysqlnd/mysqlnd_enum_n_def.h b/ext/mysqlnd/mysqlnd_enum_n_def.h index 9d556abce5563..f37a4fd2bef07 100644 --- a/ext/mysqlnd/mysqlnd_enum_n_def.h +++ b/ext/mysqlnd/mysqlnd_enum_n_def.h @@ -206,7 +206,7 @@ typedef enum mysqlnd_client_option MYSQL_OPT_PROTOCOL, /* Unsupported by mysqlnd */ MYSQL_SHARED_MEMORY_BASE_NAME, /* Unsupported by mysqlnd */ MYSQL_OPT_READ_TIMEOUT, - MYSQL_OPT_WRITE_TIMEOUT, + MYSQL_OPT_WRITE_TIMEOUT, /* Unsupported by mysqlnd */ MYSQL_OPT_USE_RESULT, /* Unsupported by mysqlnd */ MYSQL_OPT_USE_REMOTE_CONNECTION, /* Unsupported by mysqlnd; removed in MySQL-8.0 */ MYSQL_OPT_USE_EMBEDDED_CONNECTION, /* Unsupported by mysqlnd; removed in MySQL-8.0 */ diff --git a/ext/mysqlnd/mysqlnd_vio.c b/ext/mysqlnd/mysqlnd_vio.c index 3a3f7b207214a..fc54f292a3ceb 100644 --- a/ext/mysqlnd/mysqlnd_vio.c +++ b/ext/mysqlnd/mysqlnd_vio.c @@ -438,11 +438,6 @@ MYSQLND_METHOD(mysqlnd_vio, set_client_option)(MYSQLND_VIO * const net, enum_mys case MYSQL_OPT_READ_TIMEOUT: net->data->options.timeout_read = *(unsigned int*) value; break; -#ifdef WHEN_SUPPORTED_BY_MYSQLI - case MYSQL_OPT_WRITE_TIMEOUT: - net->data->options.timeout_write = *(unsigned int*) value; - break; -#endif default: DBG_RETURN(FAIL); } From 5ea71808dfab751817f50f54542920803e0bdc30 Mon Sep 17 00:00:00 2001 From: Kamil Tekiela Date: Tue, 20 Jan 2026 00:24:38 +0000 Subject: [PATCH 3/5] Drop the now unused enum --- ext/mysqlnd/mysqlnd_enum_n_def.h | 10 ---------- 1 file changed, 10 deletions(-) diff --git a/ext/mysqlnd/mysqlnd_enum_n_def.h b/ext/mysqlnd/mysqlnd_enum_n_def.h index f37a4fd2bef07..a64ce1f4212f0 100644 --- a/ext/mysqlnd/mysqlnd_enum_n_def.h +++ b/ext/mysqlnd/mysqlnd_enum_n_def.h @@ -252,16 +252,6 @@ typedef enum mysqlnd_client_option MYSQLND_OPT_AUTH_PROTOCOL = 211 } enum_mysqlnd_client_option; -typedef enum mysqlnd_session_protocol_type -{ - MYSQL_PROTOCOL_DEFAULT = 0, - MYSQL_PROTOCOL_TCP, /* all, supported */ - MYSQL_PROTOCOL_SOCKET, /* unix, supported */ - MYSQL_PROTOCOL_PIPE, /* win32, not-supported */ - MYSQL_PROTOCOL_MEMORY, /* win32, not-supported */ - MYSQL_PROTOCOL_LAST -} enum_mysqlnd_session_protocol_type; - typedef enum mysqlnd_field_types { MYSQL_TYPE_DECIMAL = 0, From c332352adfdaa225d79e6c1b57866150d7f44286 Mon Sep 17 00:00:00 2001 From: Kamil Tekiela Date: Tue, 20 Jan 2026 20:08:31 +0000 Subject: [PATCH 4/5] Drop struct field timeout_write --- ext/mysqlnd/mysqlnd_structs.h | 1 - 1 file changed, 1 deletion(-) diff --git a/ext/mysqlnd/mysqlnd_structs.h b/ext/mysqlnd/mysqlnd_structs.h index 049fa3598e93b..2c1f3b8d1fc0e 100644 --- a/ext/mysqlnd/mysqlnd_structs.h +++ b/ext/mysqlnd/mysqlnd_structs.h @@ -238,7 +238,6 @@ typedef struct st_mysqlnd_vio_options /* timeouts */ unsigned int timeout_connect; unsigned int timeout_read; - unsigned int timeout_write; size_t net_read_buffer_size; From 6116737141ec3f6e5772274d8a261529ee706179 Mon Sep 17 00:00:00 2001 From: Kamil Tekiela Date: Tue, 20 Jan 2026 20:10:18 +0000 Subject: [PATCH 5/5] Add changelog --- UPGRADING.INTERNALS | 1 + 1 file changed, 1 insertion(+) diff --git a/UPGRADING.INTERNALS b/UPGRADING.INTERNALS index 1b041da5affed..d00c6e337eae4 100644 --- a/UPGRADING.INTERNALS +++ b/UPGRADING.INTERNALS @@ -77,6 +77,7 @@ PHP 8.6 INTERNALS UPGRADE NOTES - ext/mysqlnd: . Dropped session_options parameter from all methods in mysqlnd_auth. The same information is present in conn->options and should be used instead. + . Dropped unused protocol element from st_mysqlnd_session_options. - ext/standard: . _php_error_log() now has a formal return type of zend_result.