From: Tobias Brunner Date: Wed, 8 Feb 2017 14:20:58 +0000 (+0100) Subject: vici: Let has_event_listeners() actually check if clients are registered X-Git-Tag: 5.5.2dr5~9^2~2 X-Git-Url: http://git.ipfire.org/gitweb/gitweb.cgi?a=commitdiff_plain;h=fa5f6ba26c0be128f9220ccd6409309c85188456;p=thirdparty%2Fstrongswan.git vici: Let has_event_listeners() actually check if clients are registered Fixes: 8d96f90a7983 ("vici: Add function to test if an event should be generated") --- diff --git a/src/libcharon/plugins/vici/vici_dispatcher.c b/src/libcharon/plugins/vici/vici_dispatcher.c index ffe0d61e5d..596255b911 100644 --- a/src/libcharon/plugins/vici/vici_dispatcher.c +++ b/src/libcharon/plugins/vici/vici_dispatcher.c @@ -471,15 +471,17 @@ METHOD(vici_dispatcher_t, manage_event, void, METHOD(vici_dispatcher_t, has_event_listeners, bool, private_vici_dispatcher_t *this, char *name) { + event_t *event; bool retval = FALSE; this->mutex->lock(this->mutex); - if (this->events->get(this->events, name)) + event = this->events->get(this->events, name); + if (event) { /* the entry might be getting destroyed, but returning * false positive is not a problem as a later raise_event * will check things again. */ - retval = TRUE; + retval = array_count(event->clients); } this->mutex->unlock(this->mutex);