@@ -1370,6 +1370,7 @@ php_mysqlnd_read_row_ex(MYSQLND_PFC * pfc,
1370
1370
MYSQLND_VIO * vio ,
1371
1371
MYSQLND_STATS * stats ,
1372
1372
MYSQLND_ERROR_INFO * error_info ,
1373
+ MYSQLND_CONNECTION_STATE * connection_state ,
1373
1374
MYSQLND_MEMORY_POOL * pool ,
1374
1375
MYSQLND_ROW_BUFFER * buffer ,
1375
1376
size_t * const data_size )
@@ -1405,6 +1406,7 @@ php_mysqlnd_read_row_ex(MYSQLND_PFC * pfc,
1405
1406
1406
1407
if (UNEXPECTED (PASS != (ret = pfc -> data -> m .receive (pfc , vio , p , header .size , stats , error_info )))) {
1407
1408
DBG_ERR ("Empty row packet body" );
1409
+ SET_CONNECTION_STATE (connection_state , CONN_QUIT_SENT );
1408
1410
set_packet_error (error_info , CR_SERVER_GONE_ERROR , UNKNOWN_SQLSTATE , mysqlnd_server_gone );
1409
1411
} else {
1410
1412
while (header .size >= MYSQLND_MAX_PACKET_SIZE ) {
@@ -1434,6 +1436,7 @@ php_mysqlnd_read_row_ex(MYSQLND_PFC * pfc,
1434
1436
1435
1437
if (PASS != (ret = pfc -> data -> m .receive (pfc , vio , p , header .size , stats , error_info ))) {
1436
1438
DBG_ERR ("Empty row packet body" );
1439
+ SET_CONNECTION_STATE (connection_state , CONN_QUIT_SENT );
1437
1440
set_packet_error (error_info , CR_SERVER_GONE_ERROR , UNKNOWN_SQLSTATE , mysqlnd_server_gone );
1438
1441
break ;
1439
1442
}
@@ -1740,7 +1743,7 @@ php_mysqlnd_rowp_read(MYSQLND_CONN_DATA * conn, void * _packet)
1740
1743
1741
1744
DBG_ENTER ("php_mysqlnd_rowp_read" );
1742
1745
1743
- ret = php_mysqlnd_read_row_ex (pfc , vio , stats , error_info ,
1746
+ ret = php_mysqlnd_read_row_ex (pfc , vio , stats , error_info , & conn -> state ,
1744
1747
packet -> result_set_memory_pool , & packet -> row_buffer , & data_size );
1745
1748
if (FAIL == ret ) {
1746
1749
goto end ;
0 commit comments