diff options
author | Andreas Steffen <andreas.steffen@strongswan.org> | 2010-11-07 01:17:21 +0100 |
---|---|---|
committer | Andreas Steffen <andreas.steffen@strongswan.org> | 2010-11-09 20:43:50 +0100 |
commit | e6b6fc881f70211a1510cf2a23230b6fc546e59c (patch) | |
tree | b34f098383803062b3de65ad4f5facd25f86ceab /src/libcharon/plugins/tnc_imv/tnc_imv_manager.c | |
parent | 296636252b514846bd3ec83fbeff6fe40c301745 (diff) | |
download | strongswan-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.c | 22 |
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(), |