diff options
author | Tobias Brunner <tobias@strongswan.org> | 2016-11-09 18:29:46 +0100 |
---|---|---|
committer | Tobias Brunner <tobias@strongswan.org> | 2016-11-11 15:33:44 +0100 |
commit | 4af02c6c61cff97b310ca68a1c0c424475e8f9cd (patch) | |
tree | 46e2f4167b4d09c513e01ce661a07f9cc4dacf92 | |
parent | d17b780eaaa1159b9171fecd4844d5c6a75879f3 (diff) | |
download | strongswan-4af02c6c61cf.tar.bz2 strongswan-4af02c6c61cf.tar.xz |
bus: Fix maximum log level for different groups after removal of a logger
The log level was incorrectly set to the same value for all groups.
Fixes: dac15e03c828 ("bus: Fix maximum log levels when mixing log/vlog
implementing loggers")
-rw-r--r-- | src/libcharon/bus/bus.c | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/src/libcharon/bus/bus.c b/src/libcharon/bus/bus.c index 6b3cea880..8e1e72b55 100644 --- a/src/libcharon/bus/bus.c +++ b/src/libcharon/bus/bus.c @@ -233,6 +233,7 @@ static inline void unregister_logger(private_bus_t *this, logger_t *logger) enumerator_t *enumerator; linked_list_t *loggers; log_entry_t *entry, *found = NULL; + debug_t group; loggers = this->loggers[DBG_MAX]; enumerator = loggers->create_enumerator(loggers); @@ -249,17 +250,16 @@ static inline void unregister_logger(private_bus_t *this, logger_t *logger) if (found) { - level_t level = LEVEL_SILENT, vlevel = LEVEL_SILENT; - debug_t group; - for (group = 0; group < DBG_MAX; group++) { if (found->levels[group] > LEVEL_SILENT) { + level_t level = LEVEL_SILENT, vlevel = LEVEL_SILENT; + loggers = this->loggers[group]; loggers->remove(loggers, found, NULL); - loggers->find_first(loggers, (linked_list_match_t)find_max_levels, NULL, - &group, &level, &vlevel); + loggers->find_first(loggers, (linked_list_match_t)find_max_levels, + NULL, group, &level, &vlevel); set_level(&this->max_level[group], level); set_level(&this->max_vlevel[group], vlevel); } |