code: func parseOldHandshakeResponseHeader(ctx context.Context, packet *handshakeResponse41, data []byte) (parsedBytes int, err error) {
  	// Ensure there are enough data to read:
  	// https://dev.mysql.com/doc/internals/en/connection-phase-packets.html#packet-Protocol::HandshakeResponse320
  	logutil.Logger(ctx).Debug("try to parse hanshake response as Protocol::HandshakeResponse320", zap.ByteString("packetData", data))
  	if len(data) < 2+3 {
  		logutil.Logger(ctx).Error("got malformed handshake response", zap.ByteString("packetData", data))
  		return 0, mysql.ErrMalformPacket
  	}
  	offset := 0
  	// capability
  	capability := binary.LittleEndian.Uint16(data[:2])
  	packet.Capability = uint32(capability)
  
  	// be compatible with Protocol::HandshakeResponse41
  	packet.Capability = packet.Capability | mysql.ClientProtocol41
  
  	offset += 2
  	// skip max packet size
  	offset += 3
  	// usa default CharsetID
  	packet.Collation = mysql.CollationNames["utf8mb4_general_ci"]
  
  	return offset, nil
  }
docs: // parseOldHandshakeResponseHeader parses the old version handshake header HandshakeResponse320