diff options
author | Tobias Brunner <tobias@strongswan.org> | 2015-06-02 15:18:52 +0200 |
---|---|---|
committer | Tobias Brunner <tobias@strongswan.org> | 2015-08-06 14:57:47 +0200 |
commit | d04b09337481c29ea28c6e0d7b89f03cec7e40e5 (patch) | |
tree | 00b3590f2e06f8c30d1cdbd2d224da8f8fa0d054 | |
parent | 186d25cbe68e2ca8ea1e5d17017d627c4adf4101 (diff) | |
download | strongswan-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.c | 5 |
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); |