]> git.ipfire.org Git - thirdparty/strongswan.git/commitdiff
Count collected SWID tags or tag IDs
authorAndreas Steffen <andreas.steffen@strongswan.org>
Wed, 4 Sep 2013 19:30:28 +0000 (21:30 +0200)
committerAndreas Steffen <andreas.steffen@strongswan.org>
Wed, 4 Sep 2013 19:30:36 +0000 (21:30 +0200)
src/libpts/swid/swid_inventory.c

index 642b656097b13ae0429e166ba367a9ec3aca3705..239ea9f92d456730d730abb39f927977951e8da5 100644 (file)
@@ -54,7 +54,8 @@ struct private_swid_inventory_t {
        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;
        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 (!collect_tags(this, abs_name))
+                       if (!collect_tags(this, abs_name, tag_count))
                        {
                                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);
                        this->list->insert_last(this->list, tag_id);
                }
+               (*tag_count)++;
+
        }
        success = TRUE;
 
@@ -180,7 +183,18 @@ end:
 METHOD(swid_inventory_t, collect, bool,
        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,