From 119d0c9f975b98185f8967cf5eceb9623ee8de8c Mon Sep 17 00:00:00 2001 From: hebo Date: Thu, 26 Dec 2019 16:13:36 +0800 Subject: [PATCH] develop --- session-dealer/mysql/resp.go | 20 ++++++++++---------- session-dealer/mysql/session.go | 2 +- 2 files changed, 11 insertions(+), 11 deletions(-) diff --git a/session-dealer/mysql/resp.go b/session-dealer/mysql/resp.go index 9fffb58..e8b6190 100644 --- a/session-dealer/mysql/resp.go +++ b/session-dealer/mysql/resp.go @@ -55,19 +55,19 @@ func parseResponseHeader(payload []byte) (ok, val int64, err error) { fmt.Printf("%#v\n", val) }() - switch { - case payload[0] == PACKET_OK && len(payload)>=7: - case payload[0] == PACKET_EOF && len(payload)<=9: - // set ok and mysql affected rows number + if payload[0] == PACKET_OK && len(payload)>=7 { ok = 1 - val = lenencInt(payload) + val = lenencInt(payload[1:]) - case payload[0] == PACKET_ERR && len(payload)>3: - // set not ok and mysql execute error-code - ok = 0 - val = int64(bytesToIntSmallEndian(payload[1:3])) + } else if len(payload) > 4 { + payload = payload[4:] + if payload[0] == PACKET_ERR && len(payload)>3 { + // set not ok and mysql execute error-code + ok = 0 + val = int64(bytesToIntSmallEndian(payload[1:3])) + } - default: + } else { err = fmt.Errorf("invalid response packet") } return diff --git a/session-dealer/mysql/session.go b/session-dealer/mysql/session.go index eb40037..7aa12e3 100644 --- a/session-dealer/mysql/session.go +++ b/session-dealer/mysql/session.go @@ -158,7 +158,7 @@ func (ms *MysqlSession) readFromServer(respSeq int64, bytes []byte) (ok, val int ms.prepareInfo.prepareStmtID = bytesToInt(contents[1:5]) } - return parseResponseHeader(contents) + return parseResponseHeader(bytes) } err = fmt.Errorf("not need packet")