aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/libimcv/plugins/imv_scanner/imv_scanner_agent.c16
-rw-r--r--src/libimcv/plugins/imv_scanner/imv_scanner_state.c4
2 files changed, 13 insertions, 7 deletions
diff --git a/src/libimcv/plugins/imv_scanner/imv_scanner_agent.c b/src/libimcv/plugins/imv_scanner/imv_scanner_agent.c
index b1640546f..a8a12bccb 100644
--- a/src/libimcv/plugins/imv_scanner/imv_scanner_agent.c
+++ b/src/libimcv/plugins/imv_scanner/imv_scanner_agent.c
@@ -255,6 +255,10 @@ METHOD(imv_agent_if_t, batch_ending, TNC_Result,
return TNC_RESULT_SUCCESS;
}
+ /* create an empty out message - we might need it */
+ out_msg = imv_msg_create(this->agent, state, id, imv_id, TNC_IMCID_ANY,
+ msg_types[0]);
+
if (!session)
{
DBG2(DBG_IMV, "no workitems available - no evaluation possible");
@@ -263,13 +267,15 @@ METHOD(imv_agent_if_t, batch_ending, TNC_Result,
TNC_IMV_EVALUATION_RESULT_DONT_KNOW);
scanner_state->set_handshake_state(scanner_state,
IMV_SCANNER_STATE_END);
- return TNC_RESULT_SUCCESS;
+ result = out_msg->send_assessment(out_msg);
+ out_msg->destroy(out_msg);
+ if (result != TNC_RESULT_SUCCESS)
+ {
+ return result;
+ }
+ return this->agent->provide_recommendation(this->agent, state);
}
- /* create an empty out message - we might need it */
- out_msg = imv_msg_create(this->agent, state, id, imv_id, TNC_IMCID_ANY,
- msg_types[0]);
-
if (handshake_state == IMV_SCANNER_STATE_INIT)
{
enumerator = session->create_workitem_enumerator(session);
diff --git a/src/libimcv/plugins/imv_scanner/imv_scanner_state.c b/src/libimcv/plugins/imv_scanner/imv_scanner_state.c
index eeb704513..d8bba988e 100644
--- a/src/libimcv/plugins/imv_scanner/imv_scanner_state.c
+++ b/src/libimcv/plugins/imv_scanner/imv_scanner_state.c
@@ -272,7 +272,7 @@ METHOD(imv_state_t, get_reason_string, bool,
private_imv_scanner_state_t *this, enumerator_t *language_enumerator,
chunk_t *reason_string, char **reason_language)
{
- if (!this->violating_ports)
+ if (this->violating_ports->get_count(this->violating_ports) == 0)
{
return FALSE;
}
@@ -292,7 +292,7 @@ METHOD(imv_state_t, get_remediation_instructions, bool,
private_imv_scanner_state_t *this, enumerator_t *language_enumerator,
chunk_t *string, char **lang_code, char **uri)
{
- if (!this->violating_ports)
+ if (this->violating_ports->get_count(this->violating_ports) == 0)
{
return FALSE;
}