Implemented new create enumerator function to get metadata request paths
Modified existing file_enumerator function to include just measurement requests
This commit is contained in:
committed by
Andreas Steffen
parent
df918eca8d
commit
8ed9f5552e
@@ -49,11 +49,26 @@ METHOD(pts_database_t, create_file_enumerator, enumerator_t*,
|
|||||||
"SELECT f.id, f.type, f.path FROM files AS f "
|
"SELECT f.id, f.type, f.path FROM files AS f "
|
||||||
"JOIN product_file AS pf ON f.id = pf.file "
|
"JOIN product_file AS pf ON f.id = pf.file "
|
||||||
"JOIN products AS p ON p.id = pf.product "
|
"JOIN products AS p ON p.id = pf.product "
|
||||||
"WHERE p.name = ?",
|
"WHERE p.name = ? AND f.measurement = 1",
|
||||||
DB_TEXT, product, DB_INT, DB_INT, DB_TEXT);
|
DB_TEXT, product, DB_INT, DB_INT, DB_TEXT);
|
||||||
return e;
|
return e;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
METHOD(pts_database_t, create_file_meta_enumerator, enumerator_t*,
|
||||||
|
private_pts_database_t *this, char *product)
|
||||||
|
{
|
||||||
|
enumerator_t *e;
|
||||||
|
|
||||||
|
/* look for all entries belonging to a product in the files table */
|
||||||
|
e = this->db->query(this->db,
|
||||||
|
"SELECT f.type, f.path FROM files AS f "
|
||||||
|
"JOIN product_file AS pf ON f.id = pf.file "
|
||||||
|
"JOIN products AS p ON p.id = pf.product "
|
||||||
|
"WHERE p.name = ? AND f.metadata = 1",
|
||||||
|
DB_TEXT, product, DB_INT, DB_TEXT);
|
||||||
|
return e;
|
||||||
|
}
|
||||||
|
|
||||||
METHOD(pts_database_t, create_hash_enumerator, enumerator_t*,
|
METHOD(pts_database_t, create_hash_enumerator, enumerator_t*,
|
||||||
private_pts_database_t *this, char *product, pts_meas_algorithms_t algo,
|
private_pts_database_t *this, char *product, pts_meas_algorithms_t algo,
|
||||||
int id, bool is_dir)
|
int id, bool is_dir)
|
||||||
@@ -99,6 +114,7 @@ pts_database_t *pts_database_create(char *uri)
|
|||||||
INIT(this,
|
INIT(this,
|
||||||
.public = {
|
.public = {
|
||||||
.create_file_enumerator = _create_file_enumerator,
|
.create_file_enumerator = _create_file_enumerator,
|
||||||
|
.create_file_meta_enumerator = _create_file_meta_enumerator,
|
||||||
.create_hash_enumerator = _create_hash_enumerator,
|
.create_hash_enumerator = _create_hash_enumerator,
|
||||||
.destroy = _destroy,
|
.destroy = _destroy,
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -33,13 +33,21 @@ typedef struct pts_database_t pts_database_t;
|
|||||||
struct pts_database_t {
|
struct pts_database_t {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get files to be measured by PTS
|
* Get files/directories to be measured by PTS
|
||||||
*
|
*
|
||||||
* @param product software product (os, vpn client, etc.)
|
* @param product software product (os, vpn client, etc.)
|
||||||
* @return enumerator over all matching files
|
* @return enumerator over all matching files/directories
|
||||||
*/
|
*/
|
||||||
enumerator_t* (*create_file_enumerator)(pts_database_t *this, char *product);
|
enumerator_t* (*create_file_enumerator)(pts_database_t *this, char *product);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get files/directories to request metadata of
|
||||||
|
*
|
||||||
|
* @param product software product (os, vpn client, etc.)
|
||||||
|
* @return enumerator over all matching files/directories
|
||||||
|
*/
|
||||||
|
enumerator_t* (*create_file_meta_enumerator)(pts_database_t *this, char *product);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get stored measurement hash for single file or directory entries
|
* Get stored measurement hash for single file or directory entries
|
||||||
*
|
*
|
||||||
|
|||||||
Reference in New Issue
Block a user