* PTS File/Directory Measurement request entry
*/
struct request_t {
- int id;
+ u_int16_t id;
+ int file_id;
bool is_dir;
};
TNC_IMV_Evaluation_Result eval;
/**
+ * Request counter
+ */
+ u_int16_t request_counter;
+
+ /**
* List of PTS File/Directory Measurement requests
*/
linked_list_t *requests;
return this->pts;
}
-METHOD(imv_attestation_state_t, add_request, void,
- private_imv_attestation_state_t *this, int id, bool is_dir)
+METHOD(imv_attestation_state_t, add_request, u_int16_t,
+ private_imv_attestation_state_t *this, int file_id, bool is_dir)
{
request_t *request;
request = malloc_thing(request_t);
- request->id = id;
+ request->id = ++this->request_counter;
+ request->file_id = file_id;
request->is_dir = is_dir;
this->requests->insert_last(this->requests, request);
+
+ return this->request_counter;
}
METHOD(imv_attestation_state_t, check_off_request, bool,
- private_imv_attestation_state_t *this, int id, bool* is_dir)
+ private_imv_attestation_state_t *this, u_int16_t id, int *file_id,
+ bool* is_dir)
{
enumerator_t *enumerator;
request_t *request;
if (request->id == id)
{
found = TRUE;
+ *file_id = request->file_id;
*is_dir = request->is_dir;
this->requests->remove_at(this->requests, enumerator);
free(request);