diff options
| author | Andreas Steffen <andreas.steffen@strongswan.org> | 2011-12-11 09:41:40 +0100 |
|---|---|---|
| committer | Andreas Steffen <andreas.steffen@strongswan.org> | 2011-12-11 09:41:40 +0100 |
| commit | 6f04ccff5e485d6d8c447351ac983bee8ac26313 (patch) | |
| tree | d0a9f3d69811e1234d151c5d14bac5d2ebd67288 /src/libimcv/plugins/imv_test | |
| parent | 54f53f90813542f3bf455ca9cc71859460e0e9b2 (diff) | |
| download | strongswan-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.c | 38 |
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; |
