Format protocol modules

Formatted the MariaDB protocol modules with Astyle.
This commit is contained in:
Markus Mäkelä
2018-01-24 11:20:11 +02:00
parent fe73458d65
commit dfbecc41e2
3 changed files with 127 additions and 126 deletions

View File

@ -116,7 +116,7 @@ static const uint8_t resultset2[] =
0x01, 0x00, 0x00, 0x15, 0x00, 0x01, 0x00, 0x00,
0x16, 0x00, 0x01, 0x00, 0x00, 0x17, 0x00, 0x01,
0x00, 0x00, 0x18, 0x00, 0x05, 0x00, 0x00, 0x19,
0xFE, 0x00, 0x00, 0x21, 0x40
0xFE, 0x00, 0x00, 0x21, 0x40
};
/**
@ -127,40 +127,40 @@ static const uint8_t resultset2[] =
**/
static const uint8_t resultset3[] =
{
0x28, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01,
0x40, 0x00, 0x00, 0x00, 0x1F, 0x00, 0x0F, 0x0A,
0x61, 0x75, 0x74, 0x6F, 0x63, 0x6F, 0x6D, 0x6D,
0x69, 0x74, 0x03, 0x4F, 0x46, 0x46, 0x02, 0x01,
0x28, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01,
0x40, 0x00, 0x00, 0x00, 0x1F, 0x00, 0x0F, 0x0A,
0x61, 0x75, 0x74, 0x6F, 0x63, 0x6F, 0x6D, 0x6D,
0x69, 0x74, 0x03, 0x4F, 0x46, 0x46, 0x02, 0x01,
0x31, 0x05, 0x09, 0x08, 0x49, 0x5F, 0x52, 0x5F,
0x5F, 0x5F, 0x53, 0x5F, 0x1D, 0x00, 0x00, 0x01,
0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00,
0x14, 0x00, 0x0F, 0x0A, 0x61, 0x75, 0x74, 0x6F,
0x63, 0x6F, 0x6D, 0x6D, 0x69, 0x74, 0x03, 0x4F,
0x46, 0x46, 0x02, 0x01, 0x31, 0x07, 0x00, 0x00,
0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x14, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01,
0x40, 0x00, 0x00, 0x00, 0x0B, 0x05, 0x09, 0x08,
0x49, 0x5F, 0x5F, 0x5F, 0x57, 0x5F, 0x5F, 0x5F,
0x01, 0x00, 0x00, 0x01, 0x04, 0x20, 0x00, 0x00,
0x02, 0x03, 0x64, 0x65, 0x66, 0x04, 0x74, 0x65,
0x73, 0x74, 0x02, 0x74, 0x31, 0x02, 0x74, 0x31,
0x01, 0x61, 0x01, 0x61, 0x0C, 0x21, 0x00, 0x3C,
0x00, 0x00, 0x00, 0xFD, 0x00, 0x00, 0x00, 0x00,
0x00, 0x20, 0x00, 0x00, 0x03, 0x03, 0x64, 0x65,
0x66, 0x04, 0x74, 0x65, 0x73, 0x74, 0x02, 0x74,
0x31, 0x02, 0x74, 0x31, 0x01, 0x62, 0x01, 0x62,
0x0C, 0x3F, 0x00, 0x0B, 0x00, 0x00, 0x00, 0x03,
0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00,
0x04, 0x03, 0x64, 0x65, 0x66, 0x04, 0x74, 0x65,
0x73, 0x74, 0x02, 0x74, 0x31, 0x02, 0x74, 0x31,
0x01, 0x63, 0x01, 0x63, 0x0C, 0x3F, 0x00, 0x0B,
0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00,
0x00, 0x20, 0x00, 0x00, 0x05, 0x03, 0x64, 0x65,
0x66, 0x04, 0x74, 0x65, 0x73, 0x74, 0x02, 0x74,
0x31, 0x02, 0x74, 0x31, 0x01, 0x64, 0x01, 0x64,
0x0C, 0x3F, 0x00, 0x0B, 0x00, 0x00, 0x00, 0x03,
0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00,
0x06, 0xFE, 0x00, 0x00, 0x21, 0x00, 0x05, 0x00,
0x5F, 0x5F, 0x53, 0x5F, 0x1D, 0x00, 0x00, 0x01,
0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00,
0x14, 0x00, 0x0F, 0x0A, 0x61, 0x75, 0x74, 0x6F,
0x63, 0x6F, 0x6D, 0x6D, 0x69, 0x74, 0x03, 0x4F,
0x46, 0x46, 0x02, 0x01, 0x31, 0x07, 0x00, 0x00,
0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x14, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01,
0x40, 0x00, 0x00, 0x00, 0x0B, 0x05, 0x09, 0x08,
0x49, 0x5F, 0x5F, 0x5F, 0x57, 0x5F, 0x5F, 0x5F,
0x01, 0x00, 0x00, 0x01, 0x04, 0x20, 0x00, 0x00,
0x02, 0x03, 0x64, 0x65, 0x66, 0x04, 0x74, 0x65,
0x73, 0x74, 0x02, 0x74, 0x31, 0x02, 0x74, 0x31,
0x01, 0x61, 0x01, 0x61, 0x0C, 0x21, 0x00, 0x3C,
0x00, 0x00, 0x00, 0xFD, 0x00, 0x00, 0x00, 0x00,
0x00, 0x20, 0x00, 0x00, 0x03, 0x03, 0x64, 0x65,
0x66, 0x04, 0x74, 0x65, 0x73, 0x74, 0x02, 0x74,
0x31, 0x02, 0x74, 0x31, 0x01, 0x62, 0x01, 0x62,
0x0C, 0x3F, 0x00, 0x0B, 0x00, 0x00, 0x00, 0x03,
0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00,
0x04, 0x03, 0x64, 0x65, 0x66, 0x04, 0x74, 0x65,
0x73, 0x74, 0x02, 0x74, 0x31, 0x02, 0x74, 0x31,
0x01, 0x63, 0x01, 0x63, 0x0C, 0x3F, 0x00, 0x0B,
0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00,
0x00, 0x20, 0x00, 0x00, 0x05, 0x03, 0x64, 0x65,
0x66, 0x04, 0x74, 0x65, 0x73, 0x74, 0x02, 0x74,
0x31, 0x02, 0x74, 0x31, 0x01, 0x64, 0x01, 0x64,
0x0C, 0x3F, 0x00, 0x0B, 0x00, 0x00, 0x00, 0x03,
0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00,
0x06, 0xFE, 0x00, 0x00, 0x21, 0x00, 0x05, 0x00,
0x00, 0x07, 0xFE, 0x00, 0x00, 0x21, 0x00
};
@ -170,46 +170,46 @@ void test1()
GWBUF *buffer;
proto.server_capabilities = GW_MYSQL_CAPABILITIES_SESSION_TRACK;
proto.num_eof_packets = 0;
ss_dfprintf(stderr,"test_session_track : Functional tests.\n");
ss_dfprintf(stderr, "test_session_track : Functional tests.\n");
//BEGIN
buffer = gwbuf_alloc_and_load(PACKET_1_LEN, resultset1+PACKET_1_IDX);
buffer = gwbuf_alloc_and_load(PACKET_1_LEN, resultset1 + PACKET_1_IDX);
mxs_mysql_get_session_track_info(buffer, &proto);
ss_dassert(strncmp(gwbuf_get_property(buffer, (char *)"trx_state"), "T_______", 8) == 0);
gwbuf_free(buffer);
//COMMIT
buffer = gwbuf_alloc_and_load(PACKET_2_LEN, resultset1+PACKET_2_IDX);
buffer = gwbuf_alloc_and_load(PACKET_2_LEN, resultset1 + PACKET_2_IDX);
mxs_mysql_get_session_track_info(buffer, &proto);
ss_dassert(strncmp(gwbuf_get_property(buffer, (char *)"trx_state"), "________", 8) == 0);
gwbuf_free(buffer);
//START TRANSACTION
buffer = gwbuf_alloc_and_load(PACKET_3_LEN, resultset1+PACKET_3_IDX);
buffer = gwbuf_alloc_and_load(PACKET_3_LEN, resultset1 + PACKET_3_IDX);
mxs_mysql_get_session_track_info(buffer, &proto);
ss_dassert(strncmp(gwbuf_get_property(buffer, (char *)"trx_state"), "T_______", 8) == 0);
gwbuf_free(buffer);
//START TRANSACTION READ ONLY
buffer = gwbuf_alloc_and_load(PACKET_4_LEN, resultset1+PACKET_4_IDX);
buffer = gwbuf_alloc_and_load(PACKET_4_LEN, resultset1 + PACKET_4_IDX);
mxs_mysql_get_session_track_info(buffer, &proto);
ss_dassert(strncmp(gwbuf_get_property(buffer, (char *)"trx_characteristics"),
"START TRANSACTION READ ONLY;", 28) == 0);
"START TRANSACTION READ ONLY;", 28) == 0);
gwbuf_free(buffer);
//COMMIT
buffer = gwbuf_alloc_and_load(PACKET_5_LEN, resultset1+PACKET_5_IDX);
buffer = gwbuf_alloc_and_load(PACKET_5_LEN, resultset1 + PACKET_5_IDX);
mxs_mysql_get_session_track_info(buffer, &proto);
ss_dassert(gwbuf_get_property(buffer, (char *)"trx_characteristics") == NULL);
ss_dassert(gwbuf_get_property(buffer, (char *)"trx_state") == NULL);
gwbuf_free(buffer);
//SET AUTOCOMMIT=0;
buffer = gwbuf_alloc_and_load(PACKET_6_LEN, resultset1+PACKET_6_IDX);
buffer = gwbuf_alloc_and_load(PACKET_6_LEN, resultset1 + PACKET_6_IDX);
mxs_mysql_get_session_track_info(buffer, &proto);
ss_dassert(strncmp(gwbuf_get_property(buffer, (char *)"autocommit"), "OFF", 3) == 0);
gwbuf_free(buffer);
//INSERT INTO t1 VALUES(1);
buffer = gwbuf_alloc_and_load(PACKET_7_LEN, resultset1+PACKET_7_IDX);
buffer = gwbuf_alloc_and_load(PACKET_7_LEN, resultset1 + PACKET_7_IDX);
mxs_mysql_get_session_track_info(buffer, &proto);
ss_dassert(strncmp(gwbuf_get_property(buffer, (char *)"trx_state"), "I___W___", 8) == 0);
gwbuf_free(buffer);
//COMMIT
buffer = gwbuf_alloc_and_load(PACKET_8_LEN, resultset1+PACKET_8_IDX);
buffer = gwbuf_alloc_and_load(PACKET_8_LEN, resultset1 + PACKET_8_IDX);
mxs_mysql_get_session_track_info(buffer, &proto);
ss_dassert(strncmp(gwbuf_get_property(buffer, (char *)"trx_state"), "________", 8) == 0);
gwbuf_free(buffer);

View File

@ -410,8 +410,8 @@ int MySQLSendHandshake(DCB* dcb)
* @param queue Queue of buffers to write
*/
int gw_MySQLWrite_client(DCB *dcb, GWBUF *queue)
{
if (GWBUF_IS_REPLY_OK(queue) && dcb->service->session_track_trx_state)
{
if (GWBUF_IS_REPLY_OK(queue) && dcb->service->session_track_trx_state)
{
parse_and_set_trx_state(dcb->session, queue);
}
@ -1899,18 +1899,18 @@ static bool parse_kill_query(char *query, uint64_t *thread_id_out, kill_type_t *
* Get lasted autocommit value;
* https://dev.mysql.com/worklog/task/?id=6885
* SESSION_TRACK_TRANSACTION_TYPE:
* Get transaction boundaries
* Get transaction boundaries
* TX_EMPTY => SESSION_TRX_INACTIVE
* TX_EXPLICIT | TX_IMPLICIT => SESSION_TRX_ACTIVE
* https://dev.mysql.com/worklog/task/?id=6885
* SESSION_TRACK_TRANSACTION_CHARACTERISTICS
* Get trx characteristics such as read only, read write, snapshot ...
*
*/
*
*/
static void parse_and_set_trx_state(MXS_SESSION *ses, GWBUF *data)
{
char *autocommit = gwbuf_get_property(data, (char *)"autocommit");
if (autocommit)
{
MXS_DEBUG("autocommit:%s", autocommit);
@ -1921,14 +1921,14 @@ static void parse_and_set_trx_state(MXS_SESSION *ses, GWBUF *data)
if (strncasecmp(autocommit, "OFF", 3) == 0)
{
session_set_autocommit(ses, false);
}
}
}
}
char *trx_state = gwbuf_get_property(data, (char *)"trx_state");
if (trx_state)
if (trx_state)
{
mysql_tx_state_t s = parse_trx_state(trx_state);
if (s == TX_EMPTY)
if (s == TX_EMPTY)
{
session_set_trx_state(ses, SESSION_TRX_INACTIVE);
}
@ -1951,5 +1951,5 @@ static void parse_and_set_trx_state(MXS_SESSION *ses, GWBUF *data)
}
}
MXS_DEBUG("trx state:%s", session_trx_state_to_string(ses->trx_state));
MXS_DEBUG("autcommit:%s", session_is_autocommit(ses)?"ON":"OFF");
MXS_DEBUG("autcommit:%s", session_is_autocommit(ses) ? "ON" : "OFF");
}

View File

@ -1754,7 +1754,7 @@ void mxs_mysql_execute_kill_user(MXS_SESSION* issuer, const char* user, kill_typ
{
LocalClient* client = LocalClient::create(issuer, *it);
const char* hard = (type & KT_HARD) ? "HARD " :
(type & KT_SOFT) ? "SOFT " : "";
(type & KT_SOFT) ? "SOFT " : "";
const char* query = (type & KT_QUERY) ? "QUERY " : "";
std::stringstream ss;
ss << "KILL " << hard << query << "USER " << user;
@ -1804,38 +1804,38 @@ void mxs_mysql_parse_ok_packet(GWBUF *buff, size_t packet_offset, size_t packet_
#endif
switch (type)
{
case SESSION_TRACK_STATE_CHANGE:
case SESSION_TRACK_SCHEMA:
case SESSION_TRACK_GTIDS:
ptr += mxs_leint_consume(&ptr);
break;
case SESSION_TRACK_TRANSACTION_CHARACTERISTICS:
mxs_leint_consume(&ptr); //length
var_value = mxs_lestr_consume_dup(&ptr);
gwbuf_add_property(buff, (char *)"trx_characteristics", var_value);
MXS_FREE(var_value);
break;
case SESSION_TRACK_SYSTEM_VARIABLES:
mxs_leint_consume(&ptr); //lenth
// system variables like autocommit, schema, charset ...
var_name = mxs_lestr_consume_dup(&ptr);
var_value = mxs_lestr_consume_dup(&ptr);
gwbuf_add_property(buff, var_name, var_value);
MXS_DEBUG("SESSION_TRACK_SYSTEM_VARIABLES, name:%s, value:%s", var_name, var_value);
MXS_FREE(var_name);
MXS_FREE(var_value);
break;
case SESSION_TRACK_TRANSACTION_TYPE:
mxs_leint_consume(&ptr); // length
trx_info = mxs_lestr_consume_dup(&ptr);
MXS_DEBUG("get trx_info:%s", trx_info);
gwbuf_add_property(buff, (char *)"trx_state", trx_info);
MXS_FREE(trx_info);
break;
default:
ptr += mxs_leint_consume(&ptr);
MXS_WARNING("recieved unexpecting session track type:%d", type);
break;
case SESSION_TRACK_STATE_CHANGE:
case SESSION_TRACK_SCHEMA:
case SESSION_TRACK_GTIDS:
ptr += mxs_leint_consume(&ptr);
break;
case SESSION_TRACK_TRANSACTION_CHARACTERISTICS:
mxs_leint_consume(&ptr); //length
var_value = mxs_lestr_consume_dup(&ptr);
gwbuf_add_property(buff, (char *)"trx_characteristics", var_value);
MXS_FREE(var_value);
break;
case SESSION_TRACK_SYSTEM_VARIABLES:
mxs_leint_consume(&ptr); //lenth
// system variables like autocommit, schema, charset ...
var_name = mxs_lestr_consume_dup(&ptr);
var_value = mxs_lestr_consume_dup(&ptr);
gwbuf_add_property(buff, var_name, var_value);
MXS_DEBUG("SESSION_TRACK_SYSTEM_VARIABLES, name:%s, value:%s", var_name, var_value);
MXS_FREE(var_name);
MXS_FREE(var_value);
break;
case SESSION_TRACK_TRANSACTION_TYPE:
mxs_leint_consume(&ptr); // length
trx_info = mxs_lestr_consume_dup(&ptr);
MXS_DEBUG("get trx_info:%s", trx_info);
gwbuf_add_property(buff, (char *)"trx_state", trx_info);
MXS_FREE(trx_info);
break;
default:
ptr += mxs_leint_consume(&ptr);
MXS_WARNING("recieved unexpecting session track type:%d", type);
break;
}
}
}
@ -1850,10 +1850,10 @@ void mxs_mysql_parse_ok_packet(GWBUF *buff, size_t packet_offset, size_t packet_
void mxs_mysql_get_session_track_info(GWBUF *buff, MySQLProtocol *proto)
{
size_t offset = 0;
uint8_t header_and_command[MYSQL_HEADER_LEN+1];
if (proto->server_capabilities&GW_MYSQL_CAPABILITIES_SESSION_TRACK)
uint8_t header_and_command[MYSQL_HEADER_LEN + 1];
if (proto->server_capabilities & GW_MYSQL_CAPABILITIES_SESSION_TRACK)
{
while (gwbuf_copy_data(buff, offset, MYSQL_HEADER_LEN+1, header_and_command) == (MYSQL_HEADER_LEN+1))
while (gwbuf_copy_data(buff, offset, MYSQL_HEADER_LEN + 1, header_and_command) == (MYSQL_HEADER_LEN + 1))
{
size_t packet_len = gw_mysql_get_byte3(header_and_command);
uint8_t cmd = header_and_command[MYSQL_COM_OFFSET];
@ -1867,8 +1867,8 @@ void mxs_mysql_get_session_track_info(GWBUF *buff, MySQLProtocol *proto)
}
if ((proto->current_command == MXS_COM_QUERY ||
proto->current_command == MXS_COM_STMT_FETCH ||
proto->current_command == MXS_COM_STMT_EXECUTE) &&
proto->current_command == MXS_COM_STMT_FETCH ||
proto->current_command == MXS_COM_STMT_EXECUTE) &&
cmd == MYSQL_REPLY_EOF)
{
proto->num_eof_packets++;
@ -1893,7 +1893,7 @@ void mxs_mysql_get_session_track_info(GWBUF *buff, MySQLProtocol *proto)
* in the context of the current transaction
* _ no non-transactional tables were read within
* the current transaction so far
*
*
* Place 3: transactional read
* R one/several transactional tables were read
* _ no transactional tables were read yet
@ -1905,7 +1905,7 @@ void mxs_mysql_get_session_track_info(GWBUF *buff, MySQLProtocol *proto)
* Place 5: transactional write
* W one/several transactional tables were written to
* _ no transactional tables were written to yet
*
*
* Place 6: unsafe statements
* s one/several unsafe statements (such as UUID())
* were used.
@ -1914,7 +1914,7 @@ void mxs_mysql_get_session_track_info(GWBUF *buff, MySQLProtocol *proto)
* Place 7: result-set
* S a result set was sent to the client
* _ statement had no result-set
*
*
* Place 8: LOCKed TABLES
* L tables were explicitly locked using LOCK TABLES
* _ LOCK TABLES is not active in this session
@ -1927,38 +1927,39 @@ mysql_tx_state_t parse_trx_state(const char *str)
{
switch (*str)
{
case 'T':
s |= TX_EXPLICIT;
break;
case 'I':
s |= TX_IMPLICIT;
break;
case 'r':
s |= TX_READ_UNSAFE;
break;
case 'R':
s |= TX_READ_TRX;
break;
case 'w':
s |= TX_WRITE_UNSAFE;
break;
case 'W':
s |= TX_WRITE_TRX;
break;
case 's':
s |= TX_STMT_UNSAFE;
break;
case 'S':
s |= TX_RESULT_SET;
break;
case 'L':
s |= TX_LOCKED_TABLES;
break;
default:
break;
case 'T':
s |= TX_EXPLICIT;
break;
case 'I':
s |= TX_IMPLICIT;
break;
case 'r':
s |= TX_READ_UNSAFE;
break;
case 'R':
s |= TX_READ_TRX;
break;
case 'w':
s |= TX_WRITE_UNSAFE;
break;
case 'W':
s |= TX_WRITE_TRX;
break;
case 's':
s |= TX_STMT_UNSAFE;
break;
case 'S':
s |= TX_RESULT_SET;
break;
case 'L':
s |= TX_LOCKED_TABLES;
break;
default:
break;
}
} while(*(str++) != 0);
}
while (*(str++) != 0);
return (mysql_tx_state_t)s;
}