From d04b09337481c29ea28c6e0d7b89f03cec7e40e5 Mon Sep 17 00:00:00 2001 From: Tobias Brunner Date: Tue, 2 Jun 2015 15:18:52 +0200 Subject: [PATCH] eap-radius: Don't send RADIUS Accounting Start messages twice If a client does Mode Config during reauthentication the assign_vips() event might be triggered twice, we should not send another Start message in that case. Fixes #937. --- src/libcharon/plugins/eap_radius/eap_radius_accounting.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/libcharon/plugins/eap_radius/eap_radius_accounting.c b/src/libcharon/plugins/eap_radius/eap_radius_accounting.c index 7a76fdd07..c6bbb737b 100644 --- a/src/libcharon/plugins/eap_radius/eap_radius_accounting.c +++ b/src/libcharon/plugins/eap_radius/eap_radius_accounting.c @@ -694,6 +694,11 @@ static void send_start(private_eap_radius_accounting_t *this, ike_sa_t *ike_sa) entry = get_or_create_entry(this, ike_sa->get_id(ike_sa), ike_sa->get_unique_id(ike_sa)); + if (entry->start_sent) + { + this->mutex->unlock(this->mutex); + return; + } entry->start_sent = TRUE; message = radius_message_create(RMC_ACCOUNTING_REQUEST);