Signed-off-by: Angus Salkeld <asalkeld(a)redhat.com>
---
lib/log.c | 8 +-------
lib/log_dcs.c | 3 +++
lib/log_thread.c | 1 +
3 files changed, 5 insertions(+), 7 deletions(-)
diff --git a/lib/log.c b/lib/log.c
index 5911f06..aa740b0 100644
--- a/lib/log.c
+++ b/lib/log.c
@@ -707,10 +707,8 @@ qb_log_fini(void)
for (pos = 0; pos <= conf_active_max; pos++) {
t = &conf[pos];
- if (t->state != QB_LOG_STATE_ENABLED) {
- continue;
- }
_log_target_disable(t);
+ free(conf[pos].format);
qb_list_for_each_safe(iter2, next2, &t->filter_head) {
flt = qb_list_entry(iter2, struct qb_log_filter, list);
qb_list_del(iter2);
@@ -765,10 +763,6 @@ qb_log_target_get(int32_t pos)
void *
qb_log_target_user_data_get(int32_t t)
{
- if (!logger_inited) {
- errno = -EINVAL;
- return NULL;
- }
if (t < 0 || t >= QB_LOG_TARGET_MAX ||
conf[t].state == QB_LOG_STATE_UNUSED) {
errno = -EBADF;
diff --git a/lib/log_dcs.c b/lib/log_dcs.c
index d19f7b0..bbd2362 100644
--- a/lib/log_dcs.c
+++ b/lib/log_dcs.c
@@ -181,4 +181,7 @@ qb_log_dcs_init(void)
void
qb_log_dcs_fini(void)
{
+ qb_array_free(lookup_arr);
+ qb_array_free(callsite_arr);
+ (void)qb_thread_lock_destroy(arr_next_lock);
}
diff --git a/lib/log_thread.c b/lib/log_thread.c
index b728f06..4756816 100644
--- a/lib/log_thread.c
+++ b/lib/log_thread.c
@@ -273,4 +273,5 @@ qb_log_thread_stop(void)
sem_post(&logt_print_finished);
pthread_join(logt_thread_id, NULL);
}
+ (void)qb_thread_lock_destroy(logt_wthread_lock);
}
--
1.7.7
Show replies by date
Signed-off-by: Angus Salkeld <asalkeld(a)redhat.com>
---
lib/log.c | 8 ++++----
1 files changed, 4 insertions(+), 4 deletions(-)
diff --git a/lib/log.c b/lib/log.c
index aa740b0..fd974b6 100644
--- a/lib/log.c
+++ b/lib/log.c
@@ -454,9 +454,10 @@ _log_filter_store(uint32_t t, enum qb_log_filter_conf c,
qb_list_for_each_safe(iter, next, list_head) {
flt = qb_list_entry(iter, struct qb_log_filter, list);
if (flt->type == type &&
- flt->low_priority == low_priority &&
- flt->high_priority == high_priority &&
- strcmp(flt->text, text) == 0) {
+ flt->low_priority <= low_priority &&
+ flt->high_priority >= high_priority &&
+ (strcmp(flt->text, text) == 0 ||
+ strcmp("*", text) == 0)) {
qb_list_del(iter);
free(flt->text);
free(flt);
@@ -683,7 +684,6 @@ qb_log_init(const char *name, int32_t facility, uint8_t priority)
_log_target_state_set(&conf[QB_LOG_SYSLOG], QB_LOG_STATE_ENABLED);
(void)qb_log_filter_ctl(QB_LOG_SYSLOG, QB_LOG_FILTER_ADD,
QB_LOG_FILTER_FILE, "*", priority);
-
}
void
--
1.7.7
Signed-off-by: Angus Salkeld <asalkeld(a)redhat.com>
---
lib/loop_poll.c | 13 +++++++++++++
1 files changed, 13 insertions(+), 0 deletions(-)
diff --git a/lib/loop_poll.c b/lib/loop_poll.c
index 1e01186..f7b59fc 100644
--- a/lib/loop_poll.c
+++ b/lib/loop_poll.c
@@ -956,10 +956,23 @@ error_exit:
void
qb_loop_signals_destroy(struct qb_loop *l)
{
+ struct qb_signal_source *s =
+ (struct qb_signal_source *)l->signal_source;
+ struct qb_list_head *list;
+ struct qb_list_head *n;
+ struct qb_loop_item *item;
+
close(pipe_fds[0]);
pipe_fds[0] = -1;
close(pipe_fds[1]);
pipe_fds[1] = -1;
+
+ qb_list_for_each_safe(list, n, &s->sig_head) {
+ item = qb_list_entry(list, struct qb_loop_item, list);
+ qb_list_del(&item->list);
+ free(item);
+ }
+
free(l->signal_source);
}
--
1.7.7