aboutsummaryrefslogtreecommitdiffstats
path: root/src/libcharon/plugins/tnc_imv/tnc_imv_manager.c
diff options
context:
space:
mode:
authorAndreas Steffen <andreas.steffen@strongswan.org>2010-11-07 01:17:21 +0100
committerAndreas Steffen <andreas.steffen@strongswan.org>2010-11-09 20:43:50 +0100
commite6b6fc881f70211a1510cf2a23230b6fc546e59c (patch)
treeb34f098383803062b3de65ad4f5facd25f86ceab /src/libcharon/plugins/tnc_imv/tnc_imv_manager.c
parent296636252b514846bd3ec83fbeff6fe40c301745 (diff)
downloadstrongswan-e6b6fc881f70211a1510cf2a23230b6fc546e59c.tar.bz2
strongswan-e6b6fc881f70211a1510cf2a23230b6fc546e59c.tar.xz
implemented receive_message() function
Diffstat (limited to 'src/libcharon/plugins/tnc_imv/tnc_imv_manager.c')
-rw-r--r--src/libcharon/plugins/tnc_imv/tnc_imv_manager.c22
1 files changed, 22 insertions, 0 deletions
diff --git a/src/libcharon/plugins/tnc_imv/tnc_imv_manager.c b/src/libcharon/plugins/tnc_imv/tnc_imv_manager.c
index a5309e462..fa6d35d41 100644
--- a/src/libcharon/plugins/tnc_imv/tnc_imv_manager.c
+++ b/src/libcharon/plugins/tnc_imv/tnc_imv_manager.c
@@ -109,6 +109,27 @@ METHOD(imv_manager_t, set_message_types, TNC_Result,
return result;
}
+METHOD(imv_manager_t, receive_message, void,
+ private_tnc_imv_manager_t *this, TNC_ConnectionID connection_id,
+ TNC_BufferReference message,
+ TNC_UInt32 message_len,
+ TNC_MessageType message_type)
+{
+ enumerator_t *enumerator;
+ imv_t *imv;
+
+ enumerator = this->imvs->create_enumerator(this->imvs);
+ while (enumerator->enumerate(enumerator, &imv))
+ {
+ if (imv->receive_message && imv->type_supported(imv, message_type))
+ {
+ imv->receive_message(imv->get_id(imv), connection_id,
+ message, message_len, message_type);
+ }
+ }
+ enumerator->destroy(enumerator);
+}
+
METHOD(imv_manager_t, destroy, void,
private_tnc_imv_manager_t *this)
{
@@ -140,6 +161,7 @@ imv_manager_t* tnc_imv_manager_create(void)
.add = _add,
.notify_connection_change = _notify_connection_change,
.set_message_types = _set_message_types,
+ .receive_message = _receive_message,
.destroy = _destroy,
},
.imvs = linked_list_create(),