aboutsummaryrefslogtreecommitdiffstats
path: root/src/libimcv
diff options
context:
space:
mode:
authorAndreas Steffen <andreas.steffen@strongswan.org>2012-09-10 00:07:54 +0200
committerAndreas Steffen <andreas.steffen@strongswan.org>2012-09-10 00:07:54 +0200
commit32e30f15cb02e5d654d3e44e0c085376cf7f2aac (patch)
tree9bda6223d7e7b984220e26d8aeee8ce9398a1ece /src/libimcv
parent3b51f34040298209131c36e176d88ce882c93b97 (diff)
downloadstrongswan-32e30f15cb02e5d654d3e44e0c085376cf7f2aac.tar.bz2
strongswan-32e30f15cb02e5d654d3e44e0c085376cf7f2aac.tar.xz
use base IMC ID if src IMC ID is not supported
Diffstat (limited to 'src/libimcv')
-rw-r--r--src/libimcv/plugins/imc_scanner/imc_scanner.c6
-rw-r--r--src/libimcv/plugins/imc_test/imc_test.c6
2 files changed, 8 insertions, 4 deletions
diff --git a/src/libimcv/plugins/imc_scanner/imc_scanner.c b/src/libimcv/plugins/imc_scanner/imc_scanner.c
index 7f8b04799..58533eabf 100644
--- a/src/libimcv/plugins/imc_scanner/imc_scanner.c
+++ b/src/libimcv/plugins/imc_scanner/imc_scanner.c
@@ -282,6 +282,7 @@ static TNC_Result receive_message(TNC_IMCID imc_id,
imc_state_t *state;
enumerator_t *enumerator;
TNC_Result result;
+ TNC_UInt32 target_imc_id;
bool fatal_error;
if (!imc_scanner)
@@ -305,6 +306,7 @@ static TNC_Result receive_message(TNC_IMCID imc_id,
{
return result;
}
+ target_imc_id = (dst_imc_id == TNC_IMCID_ANY) ? imc_id : dst_imc_id;
/* preprocess any IETF standard error attributes */
fatal_error = pa_tnc_msg->process_ietf_std_errors(pa_tnc_msg);
@@ -321,7 +323,7 @@ static TNC_Result receive_message(TNC_IMCID imc_id,
ietf_attr_assess_result_t *ietf_attr;
ietf_attr = (ietf_attr_assess_result_t*)attr;
- state->set_result(state, dst_imc_id,
+ state->set_result(state, target_imc_id,
ietf_attr->get_result(ietf_attr));
}
}
@@ -334,7 +336,7 @@ static TNC_Result receive_message(TNC_IMCID imc_id,
}
/* if no assessment result is known then repeat the measurement */
- return state->get_result(state, dst_imc_id, NULL) ?
+ return state->get_result(state, target_imc_id, NULL) ?
TNC_RESULT_SUCCESS : send_message(connection_id);
}
diff --git a/src/libimcv/plugins/imc_test/imc_test.c b/src/libimcv/plugins/imc_test/imc_test.c
index 6283309c4..ee8e5b206 100644
--- a/src/libimcv/plugins/imc_test/imc_test.c
+++ b/src/libimcv/plugins/imc_test/imc_test.c
@@ -284,6 +284,7 @@ static TNC_Result receive_message(TNC_IMCID imc_id,
imc_state_t *state;
enumerator_t *enumerator;
TNC_Result result;
+ TNC_UInt32 target_imc_id;
bool fatal_error = FALSE;
if (!imc_test)
@@ -307,6 +308,7 @@ static TNC_Result receive_message(TNC_IMCID imc_id,
{
return result;
}
+ target_imc_id = (dst_imc_id == TNC_IMCID_ANY) ? imc_id : dst_imc_id;
/* preprocess any IETF standard error attributes */
fatal_error = pa_tnc_msg->process_ietf_std_errors(pa_tnc_msg);
@@ -322,7 +324,7 @@ static TNC_Result receive_message(TNC_IMCID imc_id,
ietf_attr_assess_result_t *ietf_attr;
ietf_attr = (ietf_attr_assess_result_t*)attr;
- state->set_result(state, dst_imc_id,
+ state->set_result(state, target_imc_id,
ietf_attr->get_result(ietf_attr));
}
else if (attr_type.vendor_id == PEN_ITA)
@@ -354,7 +356,7 @@ static TNC_Result receive_message(TNC_IMCID imc_id,
}
/* if no assessment result is known then repeat the measurement */
- return state->get_result(state, dst_imc_id, NULL) ?
+ return state->get_result(state, target_imc_id, NULL) ?
TNC_RESULT_SUCCESS : send_message(state, dst_imc_id, src_imv_id);
}