Skip to content

Commit 280c834

Browse files
committed
MNDR:
- rename the macro for updating the connection state
1 parent 109dc08 commit 280c834

File tree

6 files changed

+90
-87
lines changed

6 files changed

+90
-87
lines changed

ext/mysqlnd/mysqlnd.c

+18-16
Original file line numberDiff line numberDiff line change
@@ -909,12 +909,12 @@ MYSQLND_METHOD(mysqlnd_conn_data, connect)(MYSQLND_CONN_DATA * conn,
909909

910910
DBG_INF_FMT("host=%s user=%s db=%s port=%u flags=%u persistent=%u state=%u",
911911
host?host:"", user?user:"", db?db:"", port, mysql_flags,
912-
conn? conn->persistent:0, conn? CONN_GET_STATE(conn):-1);
912+
conn? conn->persistent:0, conn? GET_CONNECTION_STATE(&conn->state):-1);
913913

914-
if (CONN_GET_STATE(conn) > CONN_ALLOCED && CONN_GET_STATE(conn) ) {
914+
if (GET_CONNECTION_STATE(&conn->state) > CONN_ALLOCED && GET_CONNECTION_STATE(&conn->state) ) {
915915
DBG_INF("Connecting on a connected handle.");
916916

917-
if (CONN_GET_STATE(conn) < CONN_QUIT_SENT) {
917+
if (GET_CONNECTION_STATE(&conn->state) < CONN_QUIT_SENT) {
918918
MYSQLND_INC_CONN_STATISTIC(conn->stats, STAT_CLOSE_IMPLICIT);
919919
reconnect = TRUE;
920920
conn->m->send_close(conn);
@@ -1011,7 +1011,7 @@ MYSQLND_METHOD(mysqlnd_conn_data, connect)(MYSQLND_CONN_DATA * conn,
10111011
}
10121012

10131013
{
1014-
CONN_SET_STATE(conn, CONN_READY);
1014+
SET_CONNECTION_STATE(&conn->state, CONN_READY);
10151015

10161016
if (saved_compression) {
10171017
net->data->compressed = TRUE;
@@ -1294,7 +1294,8 @@ MYSQLND ** mysqlnd_stream_array_check_for_readiness(MYSQLND ** conn_array)
12941294
MYSQLND **ret = NULL;
12951295

12961296
while (*p) {
1297-
if (CONN_GET_STATE((*p)->data) <= CONN_READY || CONN_GET_STATE((*p)->data) == CONN_QUIT_SENT) {
1297+
const enum mysqlnd_connection_state conn_state = GET_CONNECTION_STATE(&((*p)->data->state));
1298+
if (conn_state <= CONN_READY || conn_state == CONN_QUIT_SENT) {
12981299
cnt++;
12991300
}
13001301
p++;
@@ -1303,7 +1304,8 @@ MYSQLND ** mysqlnd_stream_array_check_for_readiness(MYSQLND ** conn_array)
13031304
MYSQLND **ret_p = ret = ecalloc(cnt + 1, sizeof(MYSQLND *));
13041305
p_p = p = conn_array;
13051306
while (*p) {
1306-
if (CONN_GET_STATE((*p)->data) <= CONN_READY || CONN_GET_STATE((*p)->data) == CONN_QUIT_SENT) {
1307+
const enum mysqlnd_connection_state conn_state = GET_CONNECTION_STATE(&((*p)->data->state));
1308+
if (conn_state <= CONN_READY || conn_state == CONN_QUIT_SENT) {
13071309
*ret_p = *p;
13081310
*p = NULL;
13091311
ret_p++;
@@ -1827,7 +1829,7 @@ MYSQLND_METHOD(mysqlnd_conn_data, kill)(MYSQLND_CONN_DATA * conn, unsigned int p
18271829
*/
18281830
UPSERT_STATUS_SET_AFFECTED_ROWS_TO_ERROR(conn->upsert_status);
18291831
} else if (PASS == ret) {
1830-
CONN_SET_STATE(conn, CONN_QUIT_SENT);
1832+
SET_CONNECTION_STATE(&conn->state, CONN_QUIT_SENT);
18311833
conn->m->send_close(conn);
18321834
}
18331835
}
@@ -1934,13 +1936,13 @@ MYSQLND_METHOD(mysqlnd_conn_data, send_close)(MYSQLND_CONN_DATA * const conn)
19341936
DBG_ENTER("mysqlnd_send_close");
19351937
DBG_INF_FMT("conn=%llu net->data->stream->abstract=%p", conn->thread_id, net_stream? net_stream->abstract:NULL);
19361938

1937-
if (CONN_GET_STATE(conn) >= CONN_READY) {
1939+
if (GET_CONNECTION_STATE(&conn->state) >= CONN_READY) {
19381940
MYSQLND_DEC_CONN_STATISTIC(conn->stats, STAT_OPENED_CONNECTIONS);
19391941
if (conn->persistent) {
19401942
MYSQLND_DEC_CONN_STATISTIC(conn->stats, STAT_OPENED_PERSISTENT_CONNECTIONS);
19411943
}
19421944
}
1943-
state = CONN_GET_STATE(conn);
1945+
state = GET_CONNECTION_STATE(&conn->state);
19441946
DBG_INF_FMT("state=%u", state);
19451947
switch (state) {
19461948
case CONN_READY:
@@ -1953,7 +1955,7 @@ MYSQLND_METHOD(mysqlnd_conn_data, send_close)(MYSQLND_CONN_DATA * const conn)
19531955
}
19541956
net->data->m.close_stream(net, conn->stats, conn->error_info);
19551957
}
1956-
CONN_SET_STATE(conn, CONN_QUIT_SENT);
1958+
SET_CONNECTION_STATE(&conn->state, CONN_QUIT_SENT);
19571959
break;
19581960
case CONN_SENDING_LOAD_DATA:
19591961
/*
@@ -1977,7 +1979,7 @@ MYSQLND_METHOD(mysqlnd_conn_data, send_close)(MYSQLND_CONN_DATA * const conn)
19771979
19781980
Fall-through
19791981
*/
1980-
CONN_SET_STATE(conn, CONN_QUIT_SENT);
1982+
SET_CONNECTION_STATE(&conn->state, CONN_QUIT_SENT);
19811983
/* Fall-through */
19821984
case CONN_QUIT_SENT:
19831985
/* The user has killed its own connection */
@@ -2182,7 +2184,7 @@ MYSQLND_METHOD(mysqlnd_conn_data, next_result)(MYSQLND_CONN_DATA * const conn)
21822184

21832185
if (PASS == conn->m->local_tx_start(conn, this_func)) {
21842186
do {
2185-
if (CONN_GET_STATE(conn) != CONN_NEXT_RESULT_PENDING) {
2187+
if (GET_CONNECTION_STATE(&conn->state) != CONN_NEXT_RESULT_PENDING) {
21862188
break;
21872189
}
21882190

@@ -2200,7 +2202,7 @@ MYSQLND_METHOD(mysqlnd_conn_data, next_result)(MYSQLND_CONN_DATA * const conn)
22002202
if (!conn->error_info->error_no) {
22012203
DBG_ERR_FMT("Serious error. %s::%u", __FILE__, __LINE__);
22022204
php_error_docref(NULL, E_WARNING, "Serious error. PID=%d", getpid());
2203-
CONN_SET_STATE(conn, CONN_QUIT_SENT);
2205+
SET_CONNECTION_STATE(&conn->state, CONN_QUIT_SENT);
22042206
conn->m->send_close(conn);
22052207
} else {
22062208
DBG_INF_FMT("Error from the server : (%u) %s", conn->error_info->error_no, conn->error_info->error);
@@ -2557,7 +2559,7 @@ MYSQLND_METHOD(mysqlnd_conn_data, use_result)(MYSQLND_CONN_DATA * const conn, co
25572559
}
25582560

25592561
/* Nothing to store for UPSERT/LOAD DATA */
2560-
if (conn->last_query_type != QUERY_SELECT || CONN_GET_STATE(conn) != CONN_FETCHING_DATA) {
2562+
if (conn->last_query_type != QUERY_SELECT || GET_CONNECTION_STATE(&conn->state) != CONN_FETCHING_DATA) {
25612563
SET_CLIENT_ERROR(conn->error_info, CR_COMMANDS_OUT_OF_SYNC, UNKNOWN_SQLSTATE, mysqlnd_out_of_sync);
25622564
DBG_ERR("Command out of sync");
25632565
break;
@@ -2600,7 +2602,7 @@ MYSQLND_METHOD(mysqlnd_conn_data, store_result)(MYSQLND_CONN_DATA * const conn,
26002602
}
26012603

26022604
/* Nothing to store for UPSERT/LOAD DATA*/
2603-
if (conn->last_query_type != QUERY_SELECT || CONN_GET_STATE(conn) != CONN_FETCHING_DATA) {
2605+
if (conn->last_query_type != QUERY_SELECT || GET_CONNECTION_STATE(&conn->state) != CONN_FETCHING_DATA) {
26042606
SET_CLIENT_ERROR(conn->error_info, CR_COMMANDS_OUT_OF_SYNC, UNKNOWN_SQLSTATE, mysqlnd_out_of_sync);
26052607
DBG_ERR("Command out of sync");
26062608
break;
@@ -3121,7 +3123,7 @@ MYSQLND_METHOD(mysqlnd_conn, close)(MYSQLND * conn_handle, enum_connection_close
31213123
DBG_INF_FMT("conn=%llu", conn->thread_id);
31223124

31233125
if (PASS == conn->m->local_tx_start(conn, this_func)) {
3124-
if (CONN_GET_STATE(conn) >= CONN_READY) {
3126+
if (GET_CONNECTION_STATE(&conn->state) >= CONN_READY) {
31253127
static enum_mysqlnd_collected_stats close_type_to_stat_map[MYSQLND_CLOSE_LAST] = {
31263128
STAT_CLOSE_EXPLICIT,
31273129
STAT_CLOSE_IMPLICIT,

ext/mysqlnd/mysqlnd_auth.c

+5-5
Original file line numberDiff line numberDiff line change
@@ -75,7 +75,7 @@ mysqlnd_auth_handshake(MYSQLND_CONN_DATA * conn,
7575
change_auth_resp_packet->auth_data_len = auth_plugin_data_len;
7676

7777
if (!PACKET_WRITE(change_auth_resp_packet)) {
78-
CONN_SET_STATE(conn, CONN_QUIT_SENT);
78+
SET_CONNECTION_STATE(&conn->state, CONN_QUIT_SENT);
7979
SET_CLIENT_ERROR(conn->error_info, CR_SERVER_GONE_ERROR, UNKNOWN_SQLSTATE, mysqlnd_server_gone);
8080
goto end;
8181
}
@@ -196,7 +196,7 @@ mysqlnd_auth_change_user(MYSQLND_CONN_DATA * const conn,
196196
change_auth_resp_packet->auth_data_len = auth_plugin_data_len;
197197

198198
if (!PACKET_WRITE(change_auth_resp_packet)) {
199-
CONN_SET_STATE(conn, CONN_QUIT_SENT);
199+
SET_CONNECTION_STATE(&conn->state, CONN_QUIT_SENT);
200200
SET_CLIENT_ERROR(conn->error_info, CR_SERVER_GONE_ERROR, UNKNOWN_SQLSTATE, mysqlnd_server_gone);
201201
goto end;
202202
}
@@ -224,7 +224,7 @@ mysqlnd_auth_change_user(MYSQLND_CONN_DATA * const conn,
224224
}
225225

226226
if (!PACKET_WRITE(auth_packet)) {
227-
CONN_SET_STATE(conn, CONN_QUIT_SENT);
227+
SET_CONNECTION_STATE(&conn->state, CONN_QUIT_SENT);
228228
SET_CLIENT_ERROR(conn->error_info, CR_SERVER_GONE_ERROR, UNKNOWN_SQLSTATE, mysqlnd_server_gone);
229229
goto end;
230230
}
@@ -514,13 +514,13 @@ mysqlnd_sha256_get_rsa_key(MYSQLND_CONN_DATA * conn,
514514
if (! PACKET_WRITE(pk_req_packet)) {
515515
DBG_ERR_FMT("Error while sending public key request packet");
516516
php_error(E_WARNING, "Error while sending public key request packet. PID=%d", getpid());
517-
CONN_SET_STATE(conn, CONN_QUIT_SENT);
517+
SET_CONNECTION_STATE(&conn->state, CONN_QUIT_SENT);
518518
break;
519519
}
520520
if (FAIL == PACKET_READ(pk_resp_packet) || NULL == pk_resp_packet->public_key) {
521521
DBG_ERR_FMT("Error while receiving public key");
522522
php_error(E_WARNING, "Error while receiving public key. PID=%d", getpid());
523-
CONN_SET_STATE(conn, CONN_QUIT_SENT);
523+
SET_CONNECTION_STATE(&conn->state, CONN_QUIT_SENT);
524524
break;
525525
}
526526
DBG_INF_FMT("Public key(%d):\n%s", pk_resp_packet->public_key_len, pk_resp_packet->public_key);

ext/mysqlnd/mysqlnd_priv.h

+2-2
Original file line numberDiff line numberDiff line change
@@ -111,8 +111,8 @@ enum_func_status mysqlnd_error_info_init(MYSQLND_ERROR_INFO * const info, zend_b
111111
#define SET_OOM_ERROR(info) SET_CLIENT_ERROR((info), CR_OUT_OF_MEMORY, UNKNOWN_SQLSTATE, mysqlnd_out_of_memory)
112112
#define COPY_CLIENT_ERROR(dest, source) SET_CLIENT_ERROR((dest), (source).error_no, (source).sqlstate, (source).error)
113113

114-
#define CONN_GET_STATE(c) (c)->state.m->get(&(c)->state)
115-
#define CONN_SET_STATE(c, s) (c)->state.m->set(&(c)->state, (s))
114+
#define GET_CONNECTION_STATE(state_struct) (state_struct)->m->get((state_struct))
115+
#define SET_CONNECTION_STATE(state_struct, s) (state_struct)->m->set((state_struct), (s))
116116

117117
void mysqlnd_connection_state_init(struct st_mysqlnd_connection_state * const state);
118118

ext/mysqlnd/mysqlnd_ps.c

+16-16
Original file line numberDiff line numberDiff line change
@@ -71,7 +71,7 @@ MYSQLND_METHOD(mysqlnd_stmt, store_result)(MYSQLND_STMT * const s)
7171
}
7272

7373
/* Nothing to store for UPSERT/LOAD DATA*/
74-
if (CONN_GET_STATE(conn) != CONN_FETCHING_DATA ||
74+
if (GET_CONNECTION_STATE(&conn->state) != CONN_FETCHING_DATA ||
7575
stmt->state != MYSQLND_STMT_WAITING_USE_OR_STORE)
7676
{
7777
SET_CLIENT_ERROR(conn->error_info, CR_COMMANDS_OUT_OF_SYNC,
@@ -167,7 +167,7 @@ MYSQLND_METHOD(mysqlnd_stmt, get_result)(MYSQLND_STMT * const s)
167167
}
168168

169169
/* Nothing to store for UPSERT/LOAD DATA*/
170-
if (CONN_GET_STATE(conn) != CONN_FETCHING_DATA || stmt->state != MYSQLND_STMT_WAITING_USE_OR_STORE) {
170+
if (GET_CONNECTION_STATE(&conn->state) != CONN_FETCHING_DATA || stmt->state != MYSQLND_STMT_WAITING_USE_OR_STORE) {
171171
SET_CLIENT_ERROR(conn->error_info, CR_COMMANDS_OUT_OF_SYNC,
172172
UNKNOWN_SQLSTATE, mysqlnd_out_of_sync);
173173
DBG_RETURN(NULL);
@@ -238,7 +238,7 @@ MYSQLND_METHOD(mysqlnd_stmt, next_result)(MYSQLND_STMT * s)
238238
conn = stmt->conn;
239239
DBG_INF_FMT("stmt=%lu", stmt->stmt_id);
240240

241-
if (CONN_GET_STATE(conn) != CONN_NEXT_RESULT_PENDING || !(conn->upsert_status->server_status & SERVER_MORE_RESULTS_EXISTS)) {
241+
if (GET_CONNECTION_STATE(&conn->state) != CONN_NEXT_RESULT_PENDING || !(conn->upsert_status->server_status & SERVER_MORE_RESULTS_EXISTS)) {
242242
DBG_RETURN(FAIL);
243243
}
244244

@@ -516,14 +516,14 @@ mysqlnd_stmt_execute_parse_response(MYSQLND_STMT * const s, enum_mysqlnd_parse_e
516516
DBG_RETURN(FAIL);
517517
}
518518
conn = stmt->conn;
519-
CONN_SET_STATE(conn, CONN_QUERY_SENT);
519+
SET_CONNECTION_STATE(&conn->state, CONN_QUERY_SENT);
520520

521521
ret = stmt->conn->m->query_read_result_set_header(stmt->conn, s);
522522
if (ret == FAIL) {
523523
COPY_CLIENT_ERROR(stmt->error_info, *conn->error_info);
524524
UPSERT_STATUS_RESET(stmt->upsert_status);
525525
stmt->upsert_status->affected_rows = conn->upsert_status->affected_rows;
526-
if (CONN_GET_STATE(conn) == CONN_QUIT_SENT) {
526+
if (GET_CONNECTION_STATE(&conn->state) == CONN_QUIT_SENT) {
527527
/* close the statement here, the connection has been closed */
528528
}
529529
stmt->state = MYSQLND_STMT_PREPARED;
@@ -574,7 +574,7 @@ mysqlnd_stmt_execute_parse_response(MYSQLND_STMT * const s, enum_mysqlnd_parse_e
574574
if (stmt->upsert_status->server_status & SERVER_STATUS_CURSOR_EXISTS) {
575575
DBG_INF("cursor exists");
576576
stmt->cursor_exists = TRUE;
577-
CONN_SET_STATE(conn, CONN_READY);
577+
SET_CONNECTION_STATE(&conn->state, CONN_READY);
578578
/* Only cursor read */
579579
stmt->default_rset_handler = s->m->use_result;
580580
DBG_INF("use_result");
@@ -885,7 +885,7 @@ mysqlnd_stmt_fetch_row_unbuffered(MYSQLND_RES * result, void * param, unsigned i
885885
DBG_INF("EOF already reached");
886886
DBG_RETURN(PASS);
887887
}
888-
if (CONN_GET_STATE(result->conn) != CONN_FETCHING_DATA) {
888+
if (GET_CONNECTION_STATE(&result->conn->state) != CONN_FETCHING_DATA) {
889889
SET_CLIENT_ERROR(result->conn->error_info, CR_COMMANDS_OUT_OF_SYNC,
890890
UNKNOWN_SQLSTATE, mysqlnd_out_of_sync);
891891
DBG_ERR("command out of sync");
@@ -969,7 +969,7 @@ mysqlnd_stmt_fetch_row_unbuffered(MYSQLND_RES * result, void * param, unsigned i
969969
COPY_CLIENT_ERROR(stmt->conn->error_info, row_packet->error_info);
970970
COPY_CLIENT_ERROR(stmt->error_info, row_packet->error_info);
971971
}
972-
CONN_SET_STATE(result->conn, CONN_READY);
972+
SET_CONNECTION_STATE(&result->conn->state, CONN_READY);
973973
result->unbuf->eof_reached = TRUE; /* so next time we won't get an error */
974974
} else if (row_packet->eof) {
975975
DBG_INF("EOF");
@@ -983,9 +983,9 @@ mysqlnd_stmt_fetch_row_unbuffered(MYSQLND_RES * result, void * param, unsigned i
983983
destroying the result object
984984
*/
985985
if (result->conn->upsert_status->server_status & SERVER_MORE_RESULTS_EXISTS) {
986-
CONN_SET_STATE(result->conn, CONN_NEXT_RESULT_PENDING);
986+
SET_CONNECTION_STATE(&result->conn->state, CONN_NEXT_RESULT_PENDING);
987987
} else {
988-
CONN_SET_STATE(result->conn, CONN_READY);
988+
SET_CONNECTION_STATE(&result->conn->state, CONN_READY);
989989
}
990990
}
991991

@@ -1012,8 +1012,8 @@ MYSQLND_METHOD(mysqlnd_stmt, use_result)(MYSQLND_STMT * s)
10121012
conn = stmt->conn;
10131013

10141014
if (!stmt->field_count ||
1015-
(!stmt->cursor_exists && CONN_GET_STATE(conn) != CONN_FETCHING_DATA) ||
1016-
(stmt->cursor_exists && CONN_GET_STATE(conn) != CONN_READY) ||
1015+
(!stmt->cursor_exists && GET_CONNECTION_STATE(&conn->state) != CONN_FETCHING_DATA) ||
1016+
(stmt->cursor_exists && GET_CONNECTION_STATE(&conn->state) != CONN_READY) ||
10171017
(stmt->state != MYSQLND_STMT_WAITING_USE_OR_STORE))
10181018
{
10191019
SET_CLIENT_ERROR(conn->error_info, CR_COMMANDS_OUT_OF_SYNC,
@@ -1296,7 +1296,7 @@ MYSQLND_METHOD(mysqlnd_stmt, reset)(MYSQLND_STMT * const s)
12961296
be separated before that.
12971297
*/
12981298

1299-
if (CONN_GET_STATE(conn) == CONN_READY) {
1299+
if (GET_CONNECTION_STATE(&conn->state) == CONN_READY) {
13001300
size_t stmt_id = stmt->stmt_id;
13011301
struct st_mysqlnd_protocol_command * command = stmt->conn->command_factory(COM_STMT_RESET, stmt->conn, stmt_id);
13021302
ret = FAIL;
@@ -1409,7 +1409,7 @@ MYSQLND_METHOD(mysqlnd_stmt, send_long_data)(MYSQLND_STMT * const s, unsigned in
14091409
one by one to the wire.
14101410
*/
14111411

1412-
if (CONN_GET_STATE(conn) == CONN_READY) {
1412+
if (GET_CONNECTION_STATE(&conn->state) == CONN_READY) {
14131413
size_t packet_len;
14141414
cmd_buf = mnd_emalloc(packet_len = MYSQLND_STMT_ID_LENGTH + 2 + length);
14151415
if (cmd_buf) {
@@ -2055,7 +2055,7 @@ MYSQLND_METHOD(mysqlnd_stmt, free_result)(MYSQLND_STMT * const s)
20552055
}
20562056

20572057
/* Line is free! */
2058-
CONN_SET_STATE(stmt->conn, CONN_READY);
2058+
SET_CONNECTION_STATE(&stmt->conn->state, CONN_READY);
20592059

20602060
DBG_RETURN(PASS);
20612061
}
@@ -2246,7 +2246,7 @@ MYSQLND_METHOD_PRIVATE(mysqlnd_stmt, net_close)(MYSQLND_STMT * const s, zend_boo
22462246
MYSQLND_INC_GLOBAL_STATISTIC(implicit == TRUE? STAT_FREE_RESULT_IMPLICIT:
22472247
STAT_FREE_RESULT_EXPLICIT);
22482248

2249-
if (CONN_GET_STATE(conn) == CONN_READY) {
2249+
if (GET_CONNECTION_STATE(&conn->state) == CONN_READY) {
22502250
enum_func_status ret = FAIL;
22512251
size_t stmt_id = stmt->stmt_id;
22522252
struct st_mysqlnd_protocol_command * command = conn->command_factory(COM_STMT_CLOSE, conn, stmt_id);

0 commit comments

Comments
 (0)