From 2b8df0add2963f7a5ee6b0b8ec28fbb252c08fe3 Mon Sep 17 00:00:00 2001 From: XieHan Date: Wed, 1 Dec 2021 22:54:13 +0800 Subject: [PATCH] fix mysql message seqid bug --- src/protocol/MySQLMessage.cc | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/protocol/MySQLMessage.cc b/src/protocol/MySQLMessage.cc index aa83af4c..dd30c677 100644 --- a/src/protocol/MySQLMessage.cc +++ b/src/protocol/MySQLMessage.cc @@ -122,6 +122,7 @@ int MySQLMessage::encode(struct iovec vectors[], int max) const unsigned char *p = (unsigned char *)buf_.c_str(); size_t nleft = buf_.size(); uint8_t seqid_start = seqid_; + uint8_t seqid = seqid_; unsigned char *head; uint32_t length; int i = 0; @@ -130,9 +131,9 @@ int MySQLMessage::encode(struct iovec vectors[], int max) { length = (nleft >= MYSQL_PAYLOAD_MAX ? MYSQL_PAYLOAD_MAX : (uint32_t)nleft); - head = heads_[seqid_]; + head = heads_[seqid]; int3store(head, length); - head[3] = seqid_++; + head[3] = seqid++; vectors[i].iov_base = head; vectors[i].iov_len = 4; i++; @@ -148,7 +149,7 @@ int MySQLMessage::encode(struct iovec vectors[], int max) nleft -= MYSQL_PAYLOAD_MAX; p += length; - } while (seqid_ != seqid_start); + } while (seqid != seqid_start); errno = EOVERFLOW; return -1;