Count collected SWID tags or tag IDs

This commit is contained in:
Andreas Steffen
2013-09-04 21:30:36 +02:00
parent cee1a86385
commit bd3eaaef9b
+17 -3
View File
@@ -54,7 +54,8 @@ struct private_swid_inventory_t {
linked_list_t *list; linked_list_t *list;
}; };
static bool collect_tags(private_swid_inventory_t *this, char *pathname) static bool collect_tags(private_swid_inventory_t *this, char *pathname,
int *tag_count)
{ {
char *rel_name, *abs_name; char *rel_name, *abs_name;
struct stat st; struct stat st;
@@ -82,7 +83,7 @@ static bool collect_tags(private_swid_inventory_t *this, char *pathname)
} }
if (S_ISDIR(st.st_mode)) if (S_ISDIR(st.st_mode))
{ {
if (!collect_tags(this, abs_name)) if (!collect_tags(this, abs_name, tag_count))
{ {
goto end; goto end;
} }
@@ -167,6 +168,8 @@ static bool collect_tags(private_swid_inventory_t *this, char *pathname)
tag_id = swid_tag_id_create(tag_creator, unique_sw_id, unique_seq_id); tag_id = swid_tag_id_create(tag_creator, unique_sw_id, unique_seq_id);
this->list->insert_last(this->list, tag_id); this->list->insert_last(this->list, tag_id);
} }
(*tag_count)++;
} }
success = TRUE; success = TRUE;
@@ -180,7 +183,18 @@ end:
METHOD(swid_inventory_t, collect, bool, METHOD(swid_inventory_t, collect, bool,
private_swid_inventory_t *this) private_swid_inventory_t *this)
{ {
return collect_tags(this, SWID_TAG_DIRECTORY); int tag_count = 0;
if (collect_tags(this, SWID_TAG_DIRECTORY, &tag_count))
{
DBG1(DBG_IMC, "collected %d SWID tag%s%s", tag_count,
this->full_tags ? "" : " ID", (tag_count == 1) ? "" : "s");
return TRUE;
}
else
{
return FALSE;
}
} }
METHOD(swid_inventory_t, add, void, METHOD(swid_inventory_t, add, void,