mirror of
https://github.com/php/php-src.git
synced 2024-09-22 02:17:32 +00:00
MNDR:
- pass connection closer and its context - remove unused parameter
This commit is contained in:
parent
280c834c49
commit
f7a445856d
@ -1936,14 +1936,15 @@ MYSQLND_METHOD(mysqlnd_conn_data, send_close)(MYSQLND_CONN_DATA * const conn)
|
||||
DBG_ENTER("mysqlnd_send_close");
|
||||
DBG_INF_FMT("conn=%llu net->data->stream->abstract=%p", conn->thread_id, net_stream? net_stream->abstract:NULL);
|
||||
|
||||
if (GET_CONNECTION_STATE(&conn->state) >= CONN_READY) {
|
||||
state = GET_CONNECTION_STATE(&conn->state);
|
||||
DBG_INF_FMT("state=%u", state);
|
||||
|
||||
if (state >= CONN_READY) {
|
||||
MYSQLND_DEC_CONN_STATISTIC(conn->stats, STAT_OPENED_CONNECTIONS);
|
||||
if (conn->persistent) {
|
||||
MYSQLND_DEC_CONN_STATISTIC(conn->stats, STAT_OPENED_PERSISTENT_CONNECTIONS);
|
||||
}
|
||||
}
|
||||
state = GET_CONNECTION_STATE(&conn->state);
|
||||
DBG_INF_FMT("state=%u", state);
|
||||
switch (state) {
|
||||
case CONN_READY:
|
||||
DBG_INF("Connection clean, sending COM_QUIT");
|
||||
|
@ -168,8 +168,7 @@ MYSQLND_METHOD(mysqlnd_stmt, get_result)(MYSQLND_STMT * const s)
|
||||
|
||||
/* Nothing to store for UPSERT/LOAD DATA*/
|
||||
if (GET_CONNECTION_STATE(&conn->state) != CONN_FETCHING_DATA || stmt->state != MYSQLND_STMT_WAITING_USE_OR_STORE) {
|
||||
SET_CLIENT_ERROR(conn->error_info, CR_COMMANDS_OUT_OF_SYNC,
|
||||
UNKNOWN_SQLSTATE, mysqlnd_out_of_sync);
|
||||
SET_CLIENT_ERROR(conn->error_info, CR_COMMANDS_OUT_OF_SYNC, UNKNOWN_SQLSTATE, mysqlnd_out_of_sync);
|
||||
DBG_RETURN(NULL);
|
||||
}
|
||||
|
||||
@ -1215,8 +1214,7 @@ MYSQLND_METHOD(mysqlnd_stmt, fetch)(MYSQLND_STMT * const s, zend_bool * const fe
|
||||
}
|
||||
DBG_INF_FMT("stmt=%lu", stmt->stmt_id);
|
||||
|
||||
if (!stmt->result ||
|
||||
stmt->state < MYSQLND_STMT_WAITING_USE_OR_STORE) {
|
||||
if (!stmt->result || stmt->state < MYSQLND_STMT_WAITING_USE_OR_STORE) {
|
||||
SET_CLIENT_ERROR(stmt->error_info, CR_COMMANDS_OUT_OF_SYNC, UNKNOWN_SQLSTATE, mysqlnd_out_of_sync);
|
||||
|
||||
DBG_ERR("command out of sync");
|
||||
|
@ -2663,18 +2663,18 @@ mysqlnd_protocol_payload_decoder_factory_free(MYSQLND_PROTOCOL_PAYLOAD_DECODER_F
|
||||
/* {{{ send_command_do_request */
|
||||
static enum_func_status
|
||||
send_command_do_request(
|
||||
MYSQLND_CONN_DATA * const conn,
|
||||
const enum php_mysqlnd_server_command command,
|
||||
const zend_uchar * const arg, const size_t arg_len,
|
||||
const zend_bool silent,
|
||||
const zend_bool ignore_upsert_status,
|
||||
|
||||
struct st_mysqlnd_connection_state * connection_state,
|
||||
MYSQLND_ERROR_INFO * error_info,
|
||||
MYSQLND_UPSERT_STATUS * upsert_status,
|
||||
MYSQLND_STATS * stats,
|
||||
MYSQLND_PROTOCOL_PAYLOAD_DECODER_FACTORY * payload_decoder_factory
|
||||
)
|
||||
MYSQLND_PROTOCOL_PAYLOAD_DECODER_FACTORY * payload_decoder_factory,
|
||||
func_mysqlnd_conn_data__send_close send_close,
|
||||
void * send_close_ctx
|
||||
)
|
||||
{
|
||||
enum_func_status ret = PASS;
|
||||
MYSQLND_PACKET_COMMAND * cmd_packet = NULL;
|
||||
@ -2720,7 +2720,7 @@ send_command_do_request(
|
||||
php_error(E_WARNING, "Error while sending %s packet. PID=%d", mysqlnd_command_to_text[command], getpid());
|
||||
}
|
||||
connection_state->m->set(connection_state, CONN_QUIT_SENT);
|
||||
conn->m->send_close(conn);
|
||||
send_close(send_close_ctx);
|
||||
DBG_ERR("Server is gone");
|
||||
ret = FAIL;
|
||||
}
|
||||
@ -2778,8 +2778,14 @@ mysqlnd_com_set_option_run(void *cmd)
|
||||
DBG_ENTER("mysqlnd_com_set_option_run");
|
||||
int2store(buffer, (unsigned int) option);
|
||||
|
||||
ret = send_command_do_request(conn, COM_SET_OPTION, buffer, sizeof(buffer), FALSE, TRUE,
|
||||
&conn->state, conn->error_info, conn->upsert_status, conn->stats, conn->payload_decoder_factory);
|
||||
ret = send_command_do_request(COM_SET_OPTION, buffer, sizeof(buffer), FALSE,
|
||||
&conn->state,
|
||||
conn->error_info,
|
||||
conn->upsert_status,
|
||||
conn->stats,
|
||||
conn->payload_decoder_factory,
|
||||
conn->m->send_close,
|
||||
conn);
|
||||
if (PASS == ret) {
|
||||
ret = conn->m->send_command_handle_response(conn, PROT_EOF_PACKET, FALSE, COM_SET_OPTION, TRUE);
|
||||
}
|
||||
@ -2820,8 +2826,14 @@ mysqlnd_com_debug_run(void *cmd)
|
||||
|
||||
DBG_ENTER("mysqlnd_com_debug_run");
|
||||
|
||||
ret = send_command_do_request(conn, COM_DEBUG, NULL, 0, FALSE, TRUE,
|
||||
&conn->state, conn->error_info, conn->upsert_status, conn->stats, conn->payload_decoder_factory);
|
||||
ret = send_command_do_request(COM_DEBUG, NULL, 0, FALSE,
|
||||
&conn->state,
|
||||
conn->error_info,
|
||||
conn->upsert_status,
|
||||
conn->stats,
|
||||
conn->payload_decoder_factory,
|
||||
conn->m->send_close,
|
||||
conn);
|
||||
if (PASS == ret) {
|
||||
ret = conn->m->send_command_handle_response(conn, PROT_EOF_PACKET, COM_DEBUG, COM_DEBUG, TRUE);
|
||||
}
|
||||
@ -2872,8 +2884,14 @@ mysqlnd_com_init_db_run(void *cmd)
|
||||
|
||||
DBG_ENTER("mysqlnd_com_init_db_run");
|
||||
|
||||
ret = send_command_do_request(conn, COM_INIT_DB, (zend_uchar*) command->context.db.s, command->context.db.l, FALSE, TRUE,
|
||||
&conn->state, conn->error_info, conn->upsert_status, conn->stats, conn->payload_decoder_factory);
|
||||
ret = send_command_do_request(COM_INIT_DB, (zend_uchar*) command->context.db.s, command->context.db.l, FALSE,
|
||||
&conn->state,
|
||||
conn->error_info,
|
||||
conn->upsert_status,
|
||||
conn->stats,
|
||||
conn->payload_decoder_factory,
|
||||
conn->m->send_close,
|
||||
conn);
|
||||
if (PASS == ret) {
|
||||
ret = conn->m->send_command_handle_response(conn, PROT_OK_PACKET, FALSE, COM_INIT_DB, TRUE);
|
||||
}
|
||||
@ -2914,8 +2932,14 @@ mysqlnd_com_ping_run(void *cmd)
|
||||
|
||||
DBG_ENTER("mysqlnd_com_ping_run");
|
||||
|
||||
ret = send_command_do_request(conn, COM_PING, NULL, 0, TRUE, TRUE,
|
||||
&conn->state, conn->error_info, conn->upsert_status, conn->stats, conn->payload_decoder_factory);
|
||||
ret = send_command_do_request(COM_PING, NULL, 0, TRUE,
|
||||
&conn->state,
|
||||
conn->error_info,
|
||||
conn->upsert_status,
|
||||
conn->stats,
|
||||
conn->payload_decoder_factory,
|
||||
conn->m->send_close,
|
||||
conn);
|
||||
if (PASS == ret) {
|
||||
ret = conn->m->send_command_handle_response(conn, PROT_OK_PACKET, TRUE, COM_PING, TRUE);
|
||||
}
|
||||
@ -2982,8 +3006,14 @@ mysqlnd_com_field_list_run(void *cmd)
|
||||
*p++ = '\0';
|
||||
}
|
||||
|
||||
ret = send_command_do_request(conn, COM_FIELD_LIST, buff, p - buff, FALSE, TRUE,
|
||||
&conn->state, conn->error_info, conn->upsert_status, conn->stats, conn->payload_decoder_factory);
|
||||
ret = send_command_do_request(COM_FIELD_LIST, buff, p - buff, FALSE,
|
||||
&conn->state,
|
||||
conn->error_info,
|
||||
conn->upsert_status,
|
||||
conn->stats,
|
||||
conn->payload_decoder_factory,
|
||||
conn->m->send_close,
|
||||
conn);
|
||||
|
||||
DBG_RETURN(ret);
|
||||
}
|
||||
@ -3022,8 +3052,14 @@ mysqlnd_com_statistics_run(void *cmd)
|
||||
|
||||
DBG_ENTER("mysqlnd_com_statistics_run");
|
||||
|
||||
ret = send_command_do_request(conn, COM_STATISTICS, NULL, 0, FALSE, TRUE,
|
||||
&conn->state, conn->error_info, conn->upsert_status, conn->stats, conn->payload_decoder_factory);
|
||||
ret = send_command_do_request(COM_STATISTICS, NULL, 0, FALSE,
|
||||
&conn->state,
|
||||
conn->error_info,
|
||||
conn->upsert_status,
|
||||
conn->stats,
|
||||
conn->payload_decoder_factory,
|
||||
conn->m->send_close,
|
||||
conn);
|
||||
|
||||
DBG_RETURN(ret);
|
||||
}
|
||||
@ -3073,8 +3109,14 @@ mysqlnd_com_process_kill_run(void *cmd)
|
||||
DBG_ENTER("mysqlnd_com_process_kill_run");
|
||||
int4store(buff, command->context.process_id);
|
||||
|
||||
ret = send_command_do_request(conn, COM_PROCESS_KILL, buff, 4, FALSE, TRUE,
|
||||
&conn->state, conn->error_info, conn->upsert_status, conn->stats, conn->payload_decoder_factory);
|
||||
ret = send_command_do_request(COM_PROCESS_KILL, buff, 4, FALSE,
|
||||
&conn->state,
|
||||
conn->error_info,
|
||||
conn->upsert_status,
|
||||
conn->stats,
|
||||
conn->payload_decoder_factory,
|
||||
conn->m->send_close,
|
||||
conn);
|
||||
if (PASS == ret && command->context.read_response) {
|
||||
ret = conn->m->send_command_handle_response(conn, PROT_OK_PACKET, FALSE, COM_PROCESS_KILL, TRUE);
|
||||
}
|
||||
@ -3128,8 +3170,14 @@ mysqlnd_com_refresh_run(void *cmd)
|
||||
DBG_ENTER("mysqlnd_com_refresh_run");
|
||||
int1store(bits, command->context.options);
|
||||
|
||||
ret = send_command_do_request(conn, COM_REFRESH, bits, 1, FALSE, TRUE,
|
||||
&conn->state, conn->error_info, conn->upsert_status, conn->stats, conn->payload_decoder_factory);
|
||||
ret = send_command_do_request(COM_REFRESH, bits, 1, FALSE,
|
||||
&conn->state,
|
||||
conn->error_info,
|
||||
conn->upsert_status,
|
||||
conn->stats,
|
||||
conn->payload_decoder_factory,
|
||||
conn->m->send_close,
|
||||
conn);
|
||||
if (PASS == ret) {
|
||||
ret = conn->m->send_command_handle_response(conn, PROT_OK_PACKET, FALSE, COM_REFRESH, TRUE);
|
||||
}
|
||||
@ -3183,8 +3231,14 @@ mysqlnd_com_shutdown_run(void *cmd)
|
||||
DBG_ENTER("mysqlnd_com_shutdown_run");
|
||||
int1store(bits, command->context.level);
|
||||
|
||||
ret = send_command_do_request(conn, COM_SHUTDOWN, bits, 1, FALSE, TRUE,
|
||||
&conn->state, conn->error_info, conn->upsert_status, conn->stats, conn->payload_decoder_factory);
|
||||
ret = send_command_do_request(COM_SHUTDOWN, bits, 1, FALSE,
|
||||
&conn->state,
|
||||
conn->error_info,
|
||||
conn->upsert_status,
|
||||
conn->stats,
|
||||
conn->payload_decoder_factory,
|
||||
conn->m->send_close,
|
||||
conn);
|
||||
if (PASS == ret) {
|
||||
ret = conn->m->send_command_handle_response(conn, PROT_OK_PACKET, FALSE, COM_SHUTDOWN, TRUE);
|
||||
}
|
||||
@ -3235,8 +3289,14 @@ mysqlnd_com_quit_run(void *cmd)
|
||||
|
||||
DBG_ENTER("mysqlnd_com_quit_run");
|
||||
|
||||
ret = send_command_do_request(conn, COM_QUIT, NULL, 0, TRUE, TRUE,
|
||||
&conn->state, conn->error_info, conn->upsert_status, conn->stats, conn->payload_decoder_factory);
|
||||
ret = send_command_do_request(COM_QUIT, NULL, 0, TRUE,
|
||||
&conn->state,
|
||||
conn->error_info,
|
||||
conn->upsert_status,
|
||||
conn->stats,
|
||||
conn->payload_decoder_factory,
|
||||
conn->m->send_close,
|
||||
conn);
|
||||
|
||||
DBG_RETURN(ret);
|
||||
}
|
||||
@ -3283,8 +3343,14 @@ mysqlnd_com_query_run(void *cmd)
|
||||
|
||||
DBG_ENTER("mysqlnd_com_query_run");
|
||||
|
||||
ret = send_command_do_request(conn, COM_QUERY, (zend_uchar*) command->context.query.s, command->context.query.l, FALSE, FALSE,
|
||||
&conn->state, conn->error_info, conn->upsert_status, conn->stats, conn->payload_decoder_factory);
|
||||
ret = send_command_do_request(COM_QUERY, (zend_uchar*) command->context.query.s, command->context.query.l, FALSE,
|
||||
&conn->state,
|
||||
conn->error_info,
|
||||
conn->upsert_status,
|
||||
conn->stats,
|
||||
conn->payload_decoder_factory,
|
||||
conn->m->send_close,
|
||||
conn);
|
||||
|
||||
if (PASS == ret) {
|
||||
SET_CONNECTION_STATE(&conn->state, CONN_QUERY_SENT);
|
||||
@ -3337,8 +3403,14 @@ mysqlnd_com_change_user_run(void *cmd)
|
||||
|
||||
DBG_ENTER("mysqlnd_com_change_user_run");
|
||||
|
||||
ret = send_command_do_request(conn, COM_CHANGE_USER, (zend_uchar*) command->context.payload.s, command->context.payload.l, command->context.silent, TRUE,
|
||||
&conn->state, conn->error_info, conn->upsert_status, conn->stats, conn->payload_decoder_factory);
|
||||
ret = send_command_do_request(COM_CHANGE_USER, (zend_uchar*) command->context.payload.s, command->context.payload.l, command->context.silent,
|
||||
&conn->state,
|
||||
conn->error_info,
|
||||
conn->upsert_status,
|
||||
conn->stats,
|
||||
conn->payload_decoder_factory,
|
||||
conn->m->send_close,
|
||||
conn);
|
||||
|
||||
DBG_RETURN(ret);
|
||||
}
|
||||
@ -3440,8 +3512,14 @@ mysqlnd_com_stmt_prepare_run(void *cmd)
|
||||
|
||||
DBG_ENTER("mysqlnd_com_stmt_prepare_run");
|
||||
|
||||
ret = send_command_do_request(conn, COM_STMT_PREPARE, (zend_uchar*) command->context.query.s, command->context.query.l, FALSE, TRUE,
|
||||
&conn->state, conn->error_info, conn->upsert_status, conn->stats, conn->payload_decoder_factory);
|
||||
ret = send_command_do_request(COM_STMT_PREPARE, (zend_uchar*) command->context.query.s, command->context.query.l, FALSE,
|
||||
&conn->state,
|
||||
conn->error_info,
|
||||
conn->upsert_status,
|
||||
conn->stats,
|
||||
conn->payload_decoder_factory,
|
||||
conn->m->send_close,
|
||||
conn);
|
||||
|
||||
DBG_RETURN(ret);
|
||||
}
|
||||
@ -3490,8 +3568,14 @@ mysqlnd_com_stmt_execute_run(void *cmd)
|
||||
|
||||
DBG_ENTER("mysqlnd_com_stmt_execute_run");
|
||||
|
||||
ret = send_command_do_request(conn, COM_STMT_EXECUTE, (zend_uchar*) command->context.payload.s, command->context.payload.l, FALSE, FALSE,
|
||||
&conn->state, conn->error_info, conn->upsert_status, conn->stats, conn->payload_decoder_factory);
|
||||
ret = send_command_do_request(COM_STMT_EXECUTE, (zend_uchar*) command->context.payload.s, command->context.payload.l, FALSE,
|
||||
&conn->state,
|
||||
conn->error_info,
|
||||
conn->upsert_status,
|
||||
conn->stats,
|
||||
conn->payload_decoder_factory,
|
||||
conn->m->send_close,
|
||||
conn);
|
||||
|
||||
DBG_RETURN(ret);
|
||||
}
|
||||
@ -3540,8 +3624,14 @@ mysqlnd_com_stmt_fetch_run(void *cmd)
|
||||
|
||||
DBG_ENTER("mysqlnd_com_stmt_fetch_run");
|
||||
|
||||
ret = send_command_do_request(conn, COM_STMT_FETCH, (zend_uchar*) command->context.payload.s, command->context.payload.l, FALSE, TRUE,
|
||||
&conn->state, conn->error_info, conn->upsert_status, conn->stats, conn->payload_decoder_factory);
|
||||
ret = send_command_do_request(COM_STMT_FETCH, (zend_uchar*) command->context.payload.s, command->context.payload.l, FALSE,
|
||||
&conn->state,
|
||||
conn->error_info,
|
||||
conn->upsert_status,
|
||||
conn->stats,
|
||||
conn->payload_decoder_factory,
|
||||
conn->m->send_close,
|
||||
conn);
|
||||
|
||||
DBG_RETURN(ret);
|
||||
}
|
||||
@ -3592,8 +3682,14 @@ mysqlnd_com_stmt_reset_run(void *cmd)
|
||||
DBG_ENTER("mysqlnd_com_stmt_reset_run");
|
||||
|
||||
int4store(cmd_buf, command->context.stmt_id);
|
||||
ret = send_command_do_request(conn, COM_STMT_RESET, cmd_buf, sizeof(cmd_buf), FALSE, TRUE,
|
||||
&conn->state, conn->error_info, conn->upsert_status, conn->stats, conn->payload_decoder_factory);
|
||||
ret = send_command_do_request(COM_STMT_RESET, cmd_buf, sizeof(cmd_buf), FALSE,
|
||||
&conn->state,
|
||||
conn->error_info,
|
||||
conn->upsert_status,
|
||||
conn->stats,
|
||||
conn->payload_decoder_factory,
|
||||
conn->m->send_close,
|
||||
conn);
|
||||
|
||||
DBG_RETURN(ret);
|
||||
}
|
||||
@ -3642,8 +3738,14 @@ mysqlnd_com_stmt_send_long_data_run(void *cmd)
|
||||
|
||||
DBG_ENTER("mysqlnd_com_stmt_send_long_data_run");
|
||||
|
||||
ret = send_command_do_request(conn, COM_STMT_SEND_LONG_DATA, (zend_uchar*) command->context.payload.s, command->context.payload.l, FALSE, TRUE,
|
||||
&conn->state, conn->error_info, conn->upsert_status, conn->stats, conn->payload_decoder_factory);
|
||||
ret = send_command_do_request(COM_STMT_SEND_LONG_DATA, (zend_uchar*) command->context.payload.s, command->context.payload.l, FALSE,
|
||||
&conn->state,
|
||||
conn->error_info,
|
||||
conn->upsert_status,
|
||||
conn->stats,
|
||||
conn->payload_decoder_factory,
|
||||
conn->m->send_close,
|
||||
conn);
|
||||
|
||||
DBG_RETURN(ret);
|
||||
}
|
||||
@ -3694,8 +3796,14 @@ mysqlnd_com_stmt_close_run(void *cmd)
|
||||
DBG_ENTER("mysqlnd_com_stmt_close_run");
|
||||
|
||||
int4store(cmd_buf, command->context.stmt_id);
|
||||
ret = send_command_do_request(conn, COM_STMT_CLOSE, cmd_buf, sizeof(cmd_buf), FALSE, TRUE,
|
||||
&conn->state, conn->error_info, conn->upsert_status, conn->stats, conn->payload_decoder_factory);
|
||||
ret = send_command_do_request(COM_STMT_CLOSE, cmd_buf, sizeof(cmd_buf), FALSE,
|
||||
&conn->state,
|
||||
conn->error_info,
|
||||
conn->upsert_status,
|
||||
conn->stats,
|
||||
conn->payload_decoder_factory,
|
||||
conn->m->send_close,
|
||||
conn);
|
||||
|
||||
DBG_RETURN(ret);
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user