diff options
author | Martin Willi <martin@revosec.ch> | 2013-03-14 16:44:09 +0100 |
---|---|---|
committer | Martin Willi <martin@revosec.ch> | 2013-03-14 16:44:09 +0100 |
commit | e813d218f1af807c260c8dbe2617d60bf18bc322 (patch) | |
tree | bc19d4bbeb0b13fbaba4c7294832a30a095d4f86 /src | |
parent | d019764ab6265361800bc468d748b58fc5329922 (diff) | |
download | strongswan-e813d218f1af807c260c8dbe2617d60bf18bc322.tar.bz2 strongswan-e813d218f1af807c260c8dbe2617d60bf18bc322.tar.xz |
Don't create interim update entries if RADIUS accounting is disabled
Diffstat (limited to 'src')
-rw-r--r-- | src/libcharon/plugins/eap_radius/eap_radius_accounting.c | 8 | ||||
-rw-r--r-- | src/libcharon/plugins/eap_radius/eap_radius_plugin.c | 6 |
2 files changed, 7 insertions, 7 deletions
diff --git a/src/libcharon/plugins/eap_radius/eap_radius_accounting.c b/src/libcharon/plugins/eap_radius/eap_radius_accounting.c index dfec0bdda..3620a4052 100644 --- a/src/libcharon/plugins/eap_radius/eap_radius_accounting.c +++ b/src/libcharon/plugins/eap_radius/eap_radius_accounting.c @@ -648,6 +648,7 @@ METHOD(listener_t, child_updown, bool, METHOD(eap_radius_accounting_t, destroy, void, private_eap_radius_accounting_t *this) { + charon->bus->remove_listener(charon->bus, &this->public.listener); singleton = NULL; this->mutex->destroy(this->mutex); this->sessions->destroy(this->sessions); @@ -680,7 +681,12 @@ eap_radius_accounting_t *eap_radius_accounting_create() .mutex = mutex_create(MUTEX_TYPE_DEFAULT), ); - singleton = this; + if (lib->settings->get_bool(lib->settings, + "%s.plugins.eap-radius.accounting", FALSE, charon->name)) + { + singleton = this; + charon->bus->add_listener(charon->bus, &this->public.listener); + } return &this->public; } diff --git a/src/libcharon/plugins/eap_radius/eap_radius_plugin.c b/src/libcharon/plugins/eap_radius/eap_radius_plugin.c index c32f52183..3baf46731 100644 --- a/src/libcharon/plugins/eap_radius/eap_radius_plugin.c +++ b/src/libcharon/plugins/eap_radius/eap_radius_plugin.c @@ -227,7 +227,6 @@ METHOD(plugin_t, destroy, void, this->configs->destroy_offset(this->configs, offsetof(radius_config_t, destroy)); this->lock->destroy(this->lock); - charon->bus->remove_listener(charon->bus, &this->accounting->listener); this->accounting->destroy(this->accounting); free(this); instance = NULL; @@ -260,11 +259,6 @@ plugin_t *eap_radius_plugin_create() instance = this; if (lib->settings->get_bool(lib->settings, - "%s.plugins.eap-radius.accounting", FALSE, charon->name)) - { - charon->bus->add_listener(charon->bus, &this->accounting->listener); - } - if (lib->settings->get_bool(lib->settings, "%s.plugins.eap-radius.dae.enable", FALSE, charon->name)) { this->dae = eap_radius_dae_create(this->accounting); |