aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTobias Brunner <tobias@strongswan.org>2015-06-02 15:18:52 +0200
committerTobias Brunner <tobias@strongswan.org>2015-08-06 14:57:47 +0200
commitd04b09337481c29ea28c6e0d7b89f03cec7e40e5 (patch)
tree00b3590f2e06f8c30d1cdbd2d224da8f8fa0d054
parent186d25cbe68e2ca8ea1e5d17017d627c4adf4101 (diff)
downloadstrongswan-d04b09337481c29ea28c6e0d7b89f03cec7e40e5.tar.bz2
strongswan-d04b09337481c29ea28c6e0d7b89f03cec7e40e5.tar.xz
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.
-rw-r--r--src/libcharon/plugins/eap_radius/eap_radius_accounting.c5
1 files changed, 5 insertions, 0 deletions
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);