diff options
-rw-r--r-- | conf/plugins/eap-radius.opt | 4 | ||||
-rw-r--r-- | src/libcharon/plugins/eap_radius/eap_radius_accounting.c | 7 |
2 files changed, 10 insertions, 1 deletions
diff --git a/conf/plugins/eap-radius.opt b/conf/plugins/eap-radius.opt index 0edd3458c..0df6a0d6f 100644 --- a/conf/plugins/eap-radius.opt +++ b/conf/plugins/eap-radius.opt @@ -1,6 +1,10 @@ charon.plugins.eap-radius.accounting = no Send RADIUS accounting information to RADIUS servers. +charon.plugins.eap-radius.accounting_close_on_timeout = yes + Close the IKE_SA if there is a timeout during interim RADIUS accounting + updates. + charon.plugins.eap-radius.accounting_requires_vip = no If enabled, accounting is disabled unless an IKE_SA has at least one virtual IP. diff --git a/src/libcharon/plugins/eap_radius/eap_radius_accounting.c b/src/libcharon/plugins/eap_radius/eap_radius_accounting.c index 8c780e78d..5fb1bbb75 100644 --- a/src/libcharon/plugins/eap_radius/eap_radius_accounting.c +++ b/src/libcharon/plugins/eap_radius/eap_radius_accounting.c @@ -410,7 +410,12 @@ static job_requeue_t send_interim(interim_data_t *data) { if (!send_message(this, message)) { - eap_radius_handle_timeout(data->id); + if (lib->settings->get_bool(lib->settings, + "%s.plugins.eap-radius.accounting_close_on_timeout", + TRUE, lib->ns)) + { + eap_radius_handle_timeout(data->id); + } } message->destroy(message); } |