diff options
author | Martin Willi <martin@revosec.ch> | 2012-09-11 15:21:25 +0200 |
---|---|---|
committer | Martin Willi <martin@revosec.ch> | 2012-09-11 15:22:22 +0200 |
commit | cf85ebbfecf506b227118f4f6b3b132cc10039b4 (patch) | |
tree | 9bfb25f7451940c64e3e215c3e3b7fb1e1ee8a98 /src | |
parent | 37095ce1c1f86de9a2e83a7030c6d0d48c4d5f98 (diff) | |
download | strongswan-cf85ebbfecf506b227118f4f6b3b132cc10039b4.tar.bz2 strongswan-cf85ebbfecf506b227118f4f6b3b132cc10039b4.tar.xz |
Support RADIUS accounting when using IKEv1 with xauth-eap and eap-radius
Diffstat (limited to 'src')
-rw-r--r-- | src/libcharon/plugins/eap_radius/eap_radius_accounting.c | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/src/libcharon/plugins/eap_radius/eap_radius_accounting.c b/src/libcharon/plugins/eap_radius/eap_radius_accounting.c index 33449d55f..2d9a7555c 100644 --- a/src/libcharon/plugins/eap_radius/eap_radius_accounting.c +++ b/src/libcharon/plugins/eap_radius/eap_radius_accounting.c @@ -285,10 +285,18 @@ METHOD(listener_t, message_hook, bool, { /* start accounting here, virtual IP now is set */ if (plain && ike_sa->get_state(ike_sa) == IKE_ESTABLISHED && - message->get_exchange_type(message) == IKE_AUTH && !incoming && !message->get_request(message)) { - send_start(this, ike_sa); + if (ike_sa->get_version(ike_sa) == IKEV1 && + message->get_exchange_type(message) == TRANSACTION) + { + send_start(this, ike_sa); + } + if (ike_sa->get_version(ike_sa) == IKEV2 && + message->get_exchange_type(message) == IKE_AUTH) + { + send_start(this, ike_sa); + } } return TRUE; } |