mirror of
https://github.com/php/php-src.git
synced 2025-08-15 21:48:51 +02:00
Merge branch 'PHP-7.4' into PHP-8.0
* PHP-7.4: Retain QUIT_SEND connection state
This commit is contained in:
commit
d784c65cca
3 changed files with 13 additions and 4 deletions
|
@ -886,7 +886,9 @@ mysqlnd_stmt_fetch_row_unbuffered(MYSQLND_RES * result, void * param, const unsi
|
|||
COPY_CLIENT_ERROR(stmt->error_info, row_packet->error_info);
|
||||
}
|
||||
}
|
||||
SET_CONNECTION_STATE(&conn->state, CONN_READY);
|
||||
if (GET_CONNECTION_STATE(&conn->state) != CONN_QUIT_SENT) {
|
||||
SET_CONNECTION_STATE(&conn->state, CONN_READY);
|
||||
}
|
||||
result->unbuf->eof_reached = TRUE; /* so next time we won't get an error */
|
||||
} else if (row_packet->eof) {
|
||||
DBG_INF("EOF");
|
||||
|
|
|
@ -741,7 +741,9 @@ MYSQLND_METHOD(mysqlnd_result_unbuffered, fetch_row_c)(MYSQLND_RES * result, voi
|
|||
COPY_CLIENT_ERROR(conn->error_info, row_packet->error_info);
|
||||
DBG_ERR_FMT("errorno=%u error=%s", row_packet->error_info.error_no, row_packet->error_info.error);
|
||||
}
|
||||
SET_CONNECTION_STATE(&conn->state, CONN_READY);
|
||||
if (GET_CONNECTION_STATE(&conn->state) != CONN_QUIT_SENT) {
|
||||
SET_CONNECTION_STATE(&conn->state, CONN_READY);
|
||||
}
|
||||
result->unbuf->eof_reached = TRUE; /* so next time we won't get an error */
|
||||
} else if (row_packet->eof) {
|
||||
/* Mark the connection as usable again */
|
||||
|
@ -879,7 +881,9 @@ MYSQLND_METHOD(mysqlnd_result_unbuffered, fetch_row)(MYSQLND_RES * result, void
|
|||
COPY_CLIENT_ERROR(conn->error_info, row_packet->error_info);
|
||||
DBG_ERR_FMT("errorno=%u error=%s", row_packet->error_info.error_no, row_packet->error_info.error);
|
||||
}
|
||||
SET_CONNECTION_STATE(&conn->state, CONN_READY);
|
||||
if (GET_CONNECTION_STATE(&conn->state) != CONN_QUIT_SENT) {
|
||||
SET_CONNECTION_STATE(&conn->state, CONN_READY);
|
||||
}
|
||||
result->unbuf->eof_reached = TRUE; /* so next time we won't get an error */
|
||||
} else if (row_packet->eof) {
|
||||
/* Mark the connection as usable again */
|
||||
|
|
|
@ -1367,6 +1367,7 @@ php_mysqlnd_read_row_ex(MYSQLND_PFC * pfc,
|
|||
MYSQLND_VIO * vio,
|
||||
MYSQLND_STATS * stats,
|
||||
MYSQLND_ERROR_INFO * error_info,
|
||||
MYSQLND_CONNECTION_STATE * connection_state,
|
||||
MYSQLND_MEMORY_POOL * pool,
|
||||
MYSQLND_ROW_BUFFER * buffer,
|
||||
size_t * const data_size)
|
||||
|
@ -1402,6 +1403,7 @@ php_mysqlnd_read_row_ex(MYSQLND_PFC * pfc,
|
|||
|
||||
if (UNEXPECTED(PASS != (ret = pfc->data->m.receive(pfc, vio, p, header.size, stats, error_info)))) {
|
||||
DBG_ERR("Empty row packet body");
|
||||
SET_CONNECTION_STATE(connection_state, CONN_QUIT_SENT);
|
||||
set_packet_error(error_info, CR_SERVER_GONE_ERROR, UNKNOWN_SQLSTATE, mysqlnd_server_gone);
|
||||
} else {
|
||||
while (header.size >= MYSQLND_MAX_PACKET_SIZE) {
|
||||
|
@ -1431,6 +1433,7 @@ php_mysqlnd_read_row_ex(MYSQLND_PFC * pfc,
|
|||
|
||||
if (PASS != (ret = pfc->data->m.receive(pfc, vio, p, header.size, stats, error_info))) {
|
||||
DBG_ERR("Empty row packet body");
|
||||
SET_CONNECTION_STATE(connection_state, CONN_QUIT_SENT);
|
||||
set_packet_error(error_info, CR_SERVER_GONE_ERROR, UNKNOWN_SQLSTATE, mysqlnd_server_gone);
|
||||
break;
|
||||
}
|
||||
|
@ -1733,7 +1736,7 @@ php_mysqlnd_rowp_read(MYSQLND_CONN_DATA * conn, void * _packet)
|
|||
|
||||
DBG_ENTER("php_mysqlnd_rowp_read");
|
||||
|
||||
ret = php_mysqlnd_read_row_ex(pfc, vio, stats, error_info,
|
||||
ret = php_mysqlnd_read_row_ex(pfc, vio, stats, error_info, &conn->state,
|
||||
packet->result_set_memory_pool, &packet->row_buffer, &data_size);
|
||||
if (FAIL == ret) {
|
||||
goto end;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue