aboutsummaryrefslogtreecommitdiffstats
path: root/src/libimcv/plugins/imv_test
diff options
context:
space:
mode:
authorAndreas Steffen <andreas.steffen@strongswan.org>2011-12-11 09:41:40 +0100
committerAndreas Steffen <andreas.steffen@strongswan.org>2011-12-11 09:41:40 +0100
commit6f04ccff5e485d6d8c447351ac983bee8ac26313 (patch)
treed0a9f3d69811e1234d151c5d14bac5d2ebd67288 /src/libimcv/plugins/imv_test
parent54f53f90813542f3bf455ca9cc71859460e0e9b2 (diff)
downloadstrongswan-6f04ccff5e485d6d8c447351ac983bee8ac26313.tar.bz2
strongswan-6f04ccff5e485d6d8c447351ac983bee8ac26313.tar.xz
added IETF standard error handling method
Diffstat (limited to 'src/libimcv/plugins/imv_test')
-rw-r--r--src/libimcv/plugins/imv_test/imv_test.c38
1 files changed, 6 insertions, 32 deletions
diff --git a/src/libimcv/plugins/imv_test/imv_test.c b/src/libimcv/plugins/imv_test/imv_test.c
index d19c7c04c..be5aa98a6 100644
--- a/src/libimcv/plugins/imv_test/imv_test.c
+++ b/src/libimcv/plugins/imv_test/imv_test.c
@@ -140,7 +140,7 @@ static TNC_Result receive_message(TNC_IMVID imv_id,
imv_test_state_t *imv_test_state;
enumerator_t *enumerator;
TNC_Result result;
- bool fatal_error = FALSE, retry = FALSE;
+ bool fatal_error, retry = FALSE;
if (!imv_test)
{
@@ -164,41 +164,15 @@ static TNC_Result receive_message(TNC_IMVID imv_id,
return result;
}
+ /* preprocess any IETF standard error attributes */
+ fatal_error = pa_tnc_msg->process_ietf_std_errors(pa_tnc_msg);
+
/* analyze PA-TNC attributes */
enumerator = pa_tnc_msg->create_attribute_enumerator(pa_tnc_msg);
while (enumerator->enumerate(enumerator, &attr))
{
- if (attr->get_vendor_id(attr) == PEN_IETF &&
- attr->get_type(attr) == IETF_ATTR_PA_TNC_ERROR)
- {
- ietf_attr_pa_tnc_error_t *error_attr;
- pa_tnc_error_code_t error_code;
- chunk_t msg_info, attr_info;
- u_int32_t offset;
-
- error_attr = (ietf_attr_pa_tnc_error_t*)attr;
- error_code = error_attr->get_error_code(error_attr);
- msg_info = error_attr->get_msg_info(error_attr);
-
- DBG1(DBG_IMV, "received PA-TNC error '%N' concerning message %#B",
- pa_tnc_error_code_names, error_code, &msg_info);
- switch (error_code)
- {
- case PA_ERROR_INVALID_PARAMETER:
- offset = error_attr->get_offset(error_attr);
- DBG1(DBG_IMV, " occurred at offset of %u bytes", offset);
- break;
- case PA_ERROR_ATTR_TYPE_NOT_SUPPORTED:
- attr_info = error_attr->get_attr_info(error_attr);
- DBG1(DBG_IMV, " unsupported attribute %#B", &attr_info);
- break;
- default:
- break;
- }
- fatal_error = TRUE;
- }
- else if (attr->get_vendor_id(attr) == PEN_ITA &&
- attr->get_type(attr) == ITA_ATTR_COMMAND)
+ if (attr->get_vendor_id(attr) == PEN_ITA &&
+ attr->get_type(attr) == ITA_ATTR_COMMAND)
{
ita_attr_command_t *ita_attr;
char *command;