aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAndreas Steffen <andreas.steffen@strongswan.org>2013-09-05 12:25:02 +0200
committerAndreas Steffen <andreas.steffen@strongswan.org>2013-09-05 12:25:02 +0200
commitae32172619a61a1c62b4b7638979bdbf81464e30 (patch)
treea4796f89d8ba8e9d0da0f0c5ac3e275e8fbd82e1
parent9b8137fdd386cd24a69644eb696a82a5bc47f8e2 (diff)
downloadstrongswan-ae32172619a61a1c62b4b7638979bdbf81464e30.tar.bz2
strongswan-ae32172619a61a1c62b4b7638979bdbf81464e30.tar.xz
Make SWID directory where tags are stored configurable
-rw-r--r--man/strongswan.conf.5.in3
-rw-r--r--src/libpts/plugins/imc_swid/Makefile.am3
-rw-r--r--src/libpts/plugins/imc_swid/imc_swid.c6
-rw-r--r--src/libpts/swid/swid_inventory.c6
-rw-r--r--src/libpts/swid/swid_inventory.h3
5 files changed, 14 insertions, 7 deletions
diff --git a/man/strongswan.conf.5.in b/man/strongswan.conf.5.in
index ebd5ed9a7..3ccc43867 100644
--- a/man/strongswan.conf.5.in
+++ b/man/strongswan.conf.5.in
@@ -970,6 +970,9 @@ Send open listening ports without being prompted
.BR libimcv.plugins.imv-scanner.remediation_uri
URI pointing to scanner remediation instructions
.TP
+.BR libimcv.plugins.imc-swid.swid_directory "[$(prefix)/share]"
+Directory where SWID tags are located
+.TP
.BR libimcv.plugins.imc-test.additional_ids " [0]"
Number of additional IMC IDs
.TP
diff --git a/src/libpts/plugins/imc_swid/Makefile.am b/src/libpts/plugins/imc_swid/Makefile.am
index be8d5f45e..14a429363 100644
--- a/src/libpts/plugins/imc_swid/Makefile.am
+++ b/src/libpts/plugins/imc_swid/Makefile.am
@@ -21,7 +21,8 @@ AM_CPPFLAGS = \
-I$(top_srcdir)/src/libstrongswan \
-I$(top_srcdir)/src/libtncif \
-I$(top_srcdir)/src/libimcv \
- -I$(top_srcdir)/src/libpts
+ -I$(top_srcdir)/src/libpts \
+ -DSWID_DIRECTORY=\"${prefix}/share\"
AM_CFLAGS = \
-rdynamic
diff --git a/src/libpts/plugins/imc_swid/imc_swid.c b/src/libpts/plugins/imc_swid/imc_swid.c
index ed6dd8b40..8e7c49b8d 100644
--- a/src/libpts/plugins/imc_swid/imc_swid.c
+++ b/src/libpts/plugins/imc_swid/imc_swid.c
@@ -155,6 +155,7 @@ static TNC_Result receive_message(imc_state_t *state, imc_msg_t *in_msg)
u_int8_t flags;
u_int32_t request_id, eid_epoch;
swid_inventory_t *swid_inventory;
+ char *swid_directory;
bool full_tags;
type = attr->get_type(attr);
@@ -178,8 +179,11 @@ static TNC_Result receive_message(imc_state_t *state, imc_msg_t *in_msg)
}
full_tags = (flags & TCG_SWID_ATTR_REQ_FLAG_R) == 0;
+ swid_directory = lib->settings->get_str(lib->settings,
+ "libimcv.plugins.imc-swid.swid_directory",
+ SWID_DIRECTORY);
swid_inventory = swid_inventory_create(full_tags);
- if (!swid_inventory->collect(swid_inventory))
+ if (!swid_inventory->collect(swid_inventory, swid_directory))
{
swid_inventory->destroy(swid_inventory);
attr = swid_error_create(TCG_SWID_ERROR, request_id,
diff --git a/src/libpts/swid/swid_inventory.c b/src/libpts/swid/swid_inventory.c
index 9a33018af..9d5c30911 100644
--- a/src/libpts/swid/swid_inventory.c
+++ b/src/libpts/swid/swid_inventory.c
@@ -30,8 +30,6 @@
typedef struct private_swid_inventory_t private_swid_inventory_t;
-#define SWID_TAG_DIRECTORY "/usr/share"
-
/**
* Private data of a swid_inventory_t object.
*
@@ -179,9 +177,9 @@ end:
}
METHOD(swid_inventory_t, collect, bool,
- private_swid_inventory_t *this)
+ private_swid_inventory_t *this, char *directory)
{
- return collect_tags(this, SWID_TAG_DIRECTORY);
+ return collect_tags(this, directory);
}
METHOD(swid_inventory_t, add, void,
diff --git a/src/libpts/swid/swid_inventory.h b/src/libpts/swid/swid_inventory.h
index 444ed5766..ae3a0c294 100644
--- a/src/libpts/swid/swid_inventory.h
+++ b/src/libpts/swid/swid_inventory.h
@@ -33,9 +33,10 @@ struct swid_inventory_t {
/**
* Collect the SWID tags stored on the endpoint
*
+ * @param directory SWID directory path
* @return TRUE if successful
*/
- bool (*collect)(swid_inventory_t *this);
+ bool (*collect)(swid_inventory_t *this, char *directory);
/**
* Collect the SWID tags stored on the endpoint