diff --git a/include/maxscale/protocol/mysql.h b/include/maxscale/protocol/mysql.h index 530f8bdaa..a0ed8d5a7 100644 --- a/include/maxscale/protocol/mysql.h +++ b/include/maxscale/protocol/mysql.h @@ -301,7 +301,7 @@ static inline uint8_t MYSQL_GET_PACKET_NO(const uint8_t* header) return header[3]; } -static inline uint32_t MYSQL_GET_PACKET_LEN(const uint8_t* header) +static inline uint32_t MYSQL_GET_PAYLOAD_LEN(const uint8_t* header) { return gw_mysql_get_byte3(header); } diff --git a/query_classifier/qc_mysqlembedded/qc_mysqlembedded.cc b/query_classifier/qc_mysqlembedded/qc_mysqlembedded.cc index 3387968b6..5396959d2 100644 --- a/query_classifier/qc_mysqlembedded/qc_mysqlembedded.cc +++ b/query_classifier/qc_mysqlembedded/qc_mysqlembedded.cc @@ -226,7 +226,7 @@ static bool parse_query(GWBUF* querybuf) /** Extract query and copy it to different buffer */ data = (uint8_t*) GWBUF_DATA(querybuf); - len = MYSQL_GET_PACKET_LEN(data) - 1; /*< distract 1 for packet type byte */ + len = MYSQL_GET_PAYLOAD_LEN(data) - 1; /*< distract 1 for packet type byte */ if (len < 1 || len >= ~((size_t) 0) - 1 || (query_str = (char *) malloc(len + 1)) == NULL) diff --git a/query_classifier/qc_sqlite/qc_sqlite.c b/query_classifier/qc_sqlite/qc_sqlite.c index d8eb45b98..0d5f906c3 100644 --- a/query_classifier/qc_sqlite/qc_sqlite.c +++ b/query_classifier/qc_sqlite/qc_sqlite.c @@ -511,7 +511,7 @@ static bool parse_query(GWBUF* query) uint8_t* data = (uint8_t*) GWBUF_DATA(query); if ((GWBUF_LENGTH(query) >= MYSQL_HEADER_LEN + 1) && - (GWBUF_LENGTH(query) == MYSQL_HEADER_LEN + MYSQL_GET_PACKET_LEN(data))) + (GWBUF_LENGTH(query) == MYSQL_HEADER_LEN + MYSQL_GET_PAYLOAD_LEN(data))) { if (MYSQL_GET_COMMAND(data) == MYSQL_COM_QUERY) { @@ -521,7 +521,7 @@ static bool parse_query(GWBUF* query) { this_thread.info = info; - size_t len = MYSQL_GET_PACKET_LEN(data) - 1; // Subtract 1 for packet type byte. + size_t len = MYSQL_GET_PAYLOAD_LEN(data) - 1; // Subtract 1 for packet type byte. const char* s = (const char*) &data[MYSQL_HEADER_LEN + 1]; @@ -576,7 +576,7 @@ static bool parse_query(GWBUF* query) else { MXS_ERROR("Packet size %ld, provided buffer is %ld.", - MYSQL_HEADER_LEN + MYSQL_GET_PACKET_LEN(data), + MYSQL_HEADER_LEN + MYSQL_GET_PAYLOAD_LEN(data), GWBUF_LENGTH(query)); } } diff --git a/server/core/modutil.c b/server/core/modutil.c index fdb14b99b..c1da17d5a 100644 --- a/server/core/modutil.c +++ b/server/core/modutil.c @@ -190,7 +190,7 @@ int modutil_MySQL_query_len(GWBUF* buf, int* nbytes_missing) len = 0; goto retblock; } - len = MYSQL_GET_PACKET_LEN((uint8_t *)GWBUF_DATA(buf)); + len = MYSQL_GET_PAYLOAD_LEN((uint8_t *)GWBUF_DATA(buf)); *nbytes_missing = len - 1; buflen = gwbuf_length(buf); @@ -344,7 +344,7 @@ modutil_get_query(GWBUF *buf) break; case MYSQL_COM_QUERY: - len = MYSQL_GET_PACKET_LEN(packet) - 1; /*< distract 1 for packet type byte */ + len = MYSQL_GET_PAYLOAD_LEN(packet) - 1; /*< distract 1 for packet type byte */ if (len < 1 || len > ~(size_t)0 - 1 || (query_str = (char *)MXS_MALLOC(len + 1)) == NULL) { if (len >= 1 && len <= ~(size_t)0 - 1) @@ -519,14 +519,14 @@ GWBUF* modutil_get_next_MySQL_packet(GWBUF** p_readbuf) if (GWBUF_LENGTH(readbuf) >= 3) // The length is in the 3 first bytes. { uint8_t *data = (uint8_t *)GWBUF_DATA((readbuf)); - packetlen = MYSQL_GET_PACKET_LEN(data) + 4; + packetlen = MYSQL_GET_PAYLOAD_LEN(data) + 4; } else { // The header is split between two GWBUFs. uint8_t data[3]; gwbuf_copy_data(readbuf, 0, 3, data); - packetlen = MYSQL_GET_PACKET_LEN(data) + 4; + packetlen = MYSQL_GET_PAYLOAD_LEN(data) + 4; } if (packetlen <= totalbuflen) @@ -655,7 +655,7 @@ modutil_count_signal_packets(GWBUF *reply, int use_ok, int n_found, int* more) bool moreresults = false; while (ptr < end) { - pktlen = MYSQL_GET_PACKET_LEN(ptr) + 4; + pktlen = MYSQL_GET_PAYLOAD_LEN(ptr) + 4; if ((iserr = PTR_IS_ERR(ptr)) || (iseof = PTR_IS_EOF(ptr))) { diff --git a/server/modules/filter/cache/cachefiltersession.cc b/server/modules/filter/cache/cachefiltersession.cc index d20de327f..9f314ee81 100644 --- a/server/modules/filter/cache/cachefiltersession.cc +++ b/server/modules/filter/cache/cachefiltersession.cc @@ -93,7 +93,7 @@ int CacheFilterSession::routeQuery(GWBUF* pPacket) // All of these should be guaranteed by RCAP_TYPE_TRANSACTION_TRACKING ss_dassert(GWBUF_IS_CONTIGUOUS(pPacket)); ss_dassert(GWBUF_LENGTH(pPacket) >= MYSQL_HEADER_LEN + 1); - ss_dassert(MYSQL_GET_PACKET_LEN(pData) + MYSQL_HEADER_LEN == GWBUF_LENGTH(pPacket)); + ss_dassert(MYSQL_GET_PAYLOAD_LEN(pData) + MYSQL_HEADER_LEN == GWBUF_LENGTH(pPacket)); bool fetch_from_server = true; @@ -107,7 +107,7 @@ int CacheFilterSession::routeQuery(GWBUF* pPacket) case MYSQL_COM_INIT_DB: { ss_dassert(!m_zUseDb); - size_t len = MYSQL_GET_PACKET_LEN(pData) - 1; // Remove the command byte. + size_t len = MYSQL_GET_PAYLOAD_LEN(pData) - 1; // Remove the command byte. m_zUseDb = (char*)MXS_MALLOC(len + 1); if (m_zUseDb) @@ -337,7 +337,7 @@ int CacheFilterSession::handle_expecting_fields() uint8_t header[MYSQL_HEADER_LEN + 1]; gwbuf_copy_data(m_res.pData, m_res.offset, MYSQL_HEADER_LEN + 1, header); - size_t packetlen = MYSQL_HEADER_LEN + MYSQL_GET_PACKET_LEN(header); + size_t packetlen = MYSQL_HEADER_LEN + MYSQL_GET_PAYLOAD_LEN(header); if (m_res.offset + packetlen <= buflen) { @@ -473,7 +473,7 @@ int CacheFilterSession::handle_expecting_rows() uint8_t header[MYSQL_HEADER_LEN + 1]; gwbuf_copy_data(m_res.pData, m_res.offset, MYSQL_HEADER_LEN + 1, header); - size_t packetlen = MYSQL_HEADER_LEN + MYSQL_GET_PACKET_LEN(header); + size_t packetlen = MYSQL_HEADER_LEN + MYSQL_GET_PAYLOAD_LEN(header); if (m_res.offset + packetlen <= buflen) { diff --git a/server/modules/filter/masking/mysql.hh b/server/modules/filter/masking/mysql.hh index 56eba66c2..05200961f 100644 --- a/server/modules/filter/masking/mysql.hh +++ b/server/modules/filter/masking/mysql.hh @@ -490,7 +490,7 @@ protected: ComPacket(GWBUF* pPacket) : m_pPacket(pPacket) , m_pI(GWBUF_DATA(pPacket)) - , m_packet_len(MYSQL_GET_PACKET_LEN(m_pI)) + , m_packet_len(MYSQL_GET_PAYLOAD_LEN(m_pI)) , m_packet_no(MYSQL_GET_PACKET_NO(m_pI)) { m_pI += MYSQL_HEADER_LEN; diff --git a/server/modules/filter/maxrows/maxrows.c b/server/modules/filter/maxrows/maxrows.c index 22640f3c1..0f343c3a6 100644 --- a/server/modules/filter/maxrows/maxrows.c +++ b/server/modules/filter/maxrows/maxrows.c @@ -292,7 +292,7 @@ static int routeQuery(FILTER *instance, void *sdata, GWBUF *packet) // All of these should be guaranteed by RCAP_TYPE_TRANSACTION_TRACKING ss_dassert(GWBUF_IS_CONTIGUOUS(packet)); ss_dassert(GWBUF_LENGTH(packet) >= MYSQL_HEADER_LEN + 1); - ss_dassert(MYSQL_GET_PACKET_LEN(data) + MYSQL_HEADER_LEN == GWBUF_LENGTH(packet)); + ss_dassert(MYSQL_GET_PAYLOAD_LEN(data) + MYSQL_HEADER_LEN == GWBUF_LENGTH(packet)); maxrows_response_state_reset(&csdata->res); csdata->state = MAXROWS_IGNORING_RESPONSE; @@ -500,7 +500,7 @@ static int handle_expecting_fields(MAXROWS_SESSION_DATA *csdata) uint8_t header[MYSQL_HEADER_LEN + 1]; gwbuf_copy_data(csdata->res.data, csdata->res.offset, MYSQL_HEADER_LEN + 1, header); - size_t packetlen = MYSQL_HEADER_LEN + MYSQL_GET_PACKET_LEN(header); + size_t packetlen = MYSQL_HEADER_LEN + MYSQL_GET_PAYLOAD_LEN(header); if (csdata->res.offset + packetlen <= buflen) { @@ -682,7 +682,7 @@ static int handle_rows(MAXROWS_SESSION_DATA *csdata) uint8_t header[MAXROWS_EOF_PACKET_LEN]; gwbuf_copy_data(csdata->res.data, csdata->res.offset, MAXROWS_EOF_PACKET_LEN, header); - size_t packetlen = MYSQL_HEADER_LEN + MYSQL_GET_PACKET_LEN(header); + size_t packetlen = MYSQL_HEADER_LEN + MYSQL_GET_PAYLOAD_LEN(header); if (csdata->res.offset + packetlen <= buflen) { diff --git a/server/modules/protocol/MySQL/MySQLBackend/mysql_backend.c b/server/modules/protocol/MySQL/MySQLBackend/mysql_backend.c index 5d40b92ff..4bf923ed8 100644 --- a/server/modules/protocol/MySQL/MySQLBackend/mysql_backend.c +++ b/server/modules/protocol/MySQL/MySQLBackend/mysql_backend.c @@ -406,7 +406,7 @@ bool is_error_response(GWBUF *buffer) void log_error_response(DCB *dcb, GWBUF *buffer) { uint8_t *data = (uint8_t*)GWBUF_DATA(buffer); - size_t len = MYSQL_GET_PACKET_LEN(data); + size_t len = MYSQL_GET_PAYLOAD_LEN(data); uint16_t errcode = MYSQL_GET_ERRCODE(data); char bufstr[len]; memcpy(bufstr, data + 7, len - 3); diff --git a/server/modules/protocol/MySQL/MySQLClient/mysql_client.c b/server/modules/protocol/MySQL/MySQLClient/mysql_client.c index 8382b9083..626741da6 100644 --- a/server/modules/protocol/MySQL/MySQLClient/mysql_client.c +++ b/server/modules/protocol/MySQL/MySQLClient/mysql_client.c @@ -474,7 +474,7 @@ int gw_read_client_event(DCB* dcb) case MXS_AUTH_STATE_MESSAGE_READ: /* After this call read_buffer will point to freed data */ if (nbytes_read < 3 || (0 == max_bytes && nbytes_read < - (MYSQL_GET_PACKET_LEN((uint8_t *) GWBUF_DATA(read_buffer)) + 4)) || + (MYSQL_GET_PAYLOAD_LEN((uint8_t *) GWBUF_DATA(read_buffer)) + 4)) || (0 != max_bytes && nbytes_read < max_bytes)) { @@ -523,7 +523,7 @@ static void store_client_information(DCB *dcb, GWBUF *buffer) MYSQL_session *ses = (MYSQL_session*)dcb->data; gwbuf_copy_data(buffer, 0, len, data); - ss_dassert(MYSQL_GET_PACKET_LEN(data) + MYSQL_HEADER_LEN == len || + ss_dassert(MYSQL_GET_PAYLOAD_LEN(data) + MYSQL_HEADER_LEN == len || len == MYSQL_AUTH_PACKET_BASE_SIZE); // For SSL request packet proto->client_capabilities = gw_mysql_get_byte4(data + MYSQL_CLIENT_CAP_OFFSET); @@ -568,7 +568,7 @@ static void check_packet(DCB *dcb, GWBUF *buf, int bytes) ss_dassert(gwbuf_copy_data(buf, 0, MYSQL_HEADER_LEN, hdr) == MYSQL_HEADER_LEN); int buflen = gwbuf_length(buf); - int pktlen = MYSQL_GET_PACKET_LEN(hdr) + MYSQL_HEADER_LEN; + int pktlen = MYSQL_GET_PAYLOAD_LEN(hdr) + MYSQL_HEADER_LEN; if (bytes == MYSQL_AUTH_PACKET_BASE_SIZE) { @@ -897,7 +897,7 @@ gw_read_normal_data(DCB *dcb, GWBUF *read_buffer, int nbytes_read) int packet_size; if (nbytes_read < 3 || nbytes_read < - (MYSQL_GET_PACKET_LEN((uint8_t *) GWBUF_DATA(read_buffer)) + 4)) + (MYSQL_GET_PAYLOAD_LEN((uint8_t *) GWBUF_DATA(read_buffer)) + 4)) { dcb->dcb_readqueue = read_buffer; @@ -1555,7 +1555,7 @@ static bool ensure_complete_packet(DCB *dcb, GWBUF **read_buffer, int nbytes_rea { dcb->dcb_readqueue = gwbuf_append(dcb->dcb_readqueue, *read_buffer); nbytes_read = gwbuf_length(dcb->dcb_readqueue); - int plen = MYSQL_GET_PACKET_LEN((uint8_t *) GWBUF_DATA(dcb->dcb_readqueue)); + int plen = MYSQL_GET_PAYLOAD_LEN((uint8_t *) GWBUF_DATA(dcb->dcb_readqueue)); if (nbytes_read < 3 || nbytes_read < plen + 4) { @@ -1575,7 +1575,7 @@ static bool ensure_complete_packet(DCB *dcb, GWBUF **read_buffer, int nbytes_rea { uint8_t* data = (uint8_t *) GWBUF_DATA(*read_buffer); - if (nbytes_read < 3 || nbytes_read < MYSQL_GET_PACKET_LEN(data) + 4) + if (nbytes_read < 3 || nbytes_read < MYSQL_GET_PAYLOAD_LEN(data) + 4) { dcb->dcb_readqueue = gwbuf_append(dcb->dcb_readqueue, *read_buffer); return false; diff --git a/server/modules/protocol/MySQL/mysql_common.c b/server/modules/protocol/MySQL/mysql_common.c index 314bba181..ed2ad6763 100644 --- a/server/modules/protocol/MySQL/mysql_common.c +++ b/server/modules/protocol/MySQL/mysql_common.c @@ -558,7 +558,7 @@ GWBUF* gw_MySQL_get_next_packet(GWBUF** p_readbuf) } totalbuflen = gwbuf_length(readbuf); data = (uint8_t *)GWBUF_DATA((readbuf)); - packetlen = MYSQL_GET_PACKET_LEN(data) + 4; + packetlen = MYSQL_GET_PAYLOAD_LEN(data) + 4; /** packet is incomplete */ if (packetlen > totalbuflen) diff --git a/server/modules/routing/readwritesplit/rwsplit_mysql.c b/server/modules/routing/readwritesplit/rwsplit_mysql.c index c259fbdd1..de5a429cd 100644 --- a/server/modules/routing/readwritesplit/rwsplit_mysql.c +++ b/server/modules/routing/readwritesplit/rwsplit_mysql.c @@ -163,7 +163,7 @@ log_transaction_status(ROUTER_CLIENT_SES *rses, GWBUF *querybuf, qc_query_type_t uint8_t *packet = GWBUF_DATA(querybuf); unsigned char ptype = packet[4]; size_t len = MXS_MIN(GWBUF_LENGTH(querybuf), - MYSQL_GET_PACKET_LEN((unsigned char *)querybuf->start) - 1); + MYSQL_GET_PAYLOAD_LEN((unsigned char *)querybuf->start) - 1); char *data = (char *)&packet[5]; char *contentstr = strndup(data, MXS_MIN(len, RWSPLIT_TRACE_MSG_LEN)); char *qtypestr = qc_typemask_to_string(qtype); @@ -386,8 +386,8 @@ void check_session_command_reply(GWBUF *writebuf, sescmd_cursor_t *scur, backend { uint8_t *buf = (uint8_t *)GWBUF_DATA((scur->scmd_cur_cmd->my_sescmd_buf)); uint8_t *replybuf = (uint8_t *)GWBUF_DATA(writebuf); - size_t len = MYSQL_GET_PACKET_LEN(buf); - size_t replylen = MYSQL_GET_PACKET_LEN(replybuf); + size_t len = MYSQL_GET_PAYLOAD_LEN(buf); + size_t replylen = MYSQL_GET_PAYLOAD_LEN(replybuf); char *err = strndup(&((char *)replybuf)[8], 5); char *replystr = strndup(&((char *)replybuf)[13], replylen - 4 - 5); @@ -481,7 +481,7 @@ bool execute_sescmd_in_backend(backend_ref_t *backend_ref) data = dcb->session->client_dcb->data; *data->db = 0; tmpbuf = scur->scmd_cur_cmd->my_sescmd_buf; - qlen = MYSQL_GET_PACKET_LEN((unsigned char *) GWBUF_DATA(tmpbuf)); + qlen = MYSQL_GET_PAYLOAD_LEN((unsigned char *) GWBUF_DATA(tmpbuf)); if (qlen) { --qlen; // The COM_INIT_DB byte diff --git a/server/modules/routing/schemarouter/schemarouter.c b/server/modules/routing/schemarouter/schemarouter.c index b29aca8b9..46b19ee22 100644 --- a/server/modules/routing/schemarouter/schemarouter.c +++ b/server/modules/routing/schemarouter/schemarouter.c @@ -1792,7 +1792,7 @@ static int routeQuery(ROUTER* instance, uint8_t* packet = GWBUF_DATA(querybuf); unsigned char ptype = packet[4]; size_t len = MXS_MIN(GWBUF_LENGTH(querybuf), - MYSQL_GET_PACKET_LEN((unsigned char *)querybuf->start) - 1); + MYSQL_GET_PAYLOAD_LEN((unsigned char *)querybuf->start) - 1); char* data = (char*)&packet[5]; char* contentstr = strndup(data, len); char* qtypestr = qc_typemask_to_string(qtype); @@ -2403,8 +2403,8 @@ static void clientReply(ROUTER* instance, { uint8_t* buf = (uint8_t *) GWBUF_DATA((scur->scmd_cur_cmd->my_sescmd_buf)); uint8_t* replybuf = (uint8_t *) GWBUF_DATA(writebuf); - size_t len = MYSQL_GET_PACKET_LEN(buf); - size_t replylen = MYSQL_GET_PACKET_LEN(replybuf); + size_t len = MYSQL_GET_PAYLOAD_LEN(buf); + size_t replylen = MYSQL_GET_PAYLOAD_LEN(replybuf); char* cmdstr = strndup(&((char *) buf)[5], len - 4); char* err = strndup(&((char *) replybuf)[8], 5); char* replystr = strndup(&((char *) replybuf)[13],