ACK On 05/29/2012 02:40 AM, Angus Salkeld wrote: > This fixes a bug where having a second log file will close > the previous one. > > Signed-off-by: Angus Salkeld <asalkeld@xxxxxxxxxx> > --- > exec/logsys.c | 26 +++++++++++++++++++------- > 1 file changed, 19 insertions(+), 7 deletions(-) > > diff --git a/exec/logsys.c b/exec/logsys.c > index 01e8783..d9ad129 100644 > --- a/exec/logsys.c > +++ b/exec/logsys.c > @@ -149,11 +149,14 @@ static int logsys_config_file_set_unlocked ( > char file_format[128]; > > if (logsys_loggers[subsysid].target_id > 0) { > - /* TODO close file > - logsys_filter_apply(subsysid, > - QB_LOG_FILTER_REMOVE, > - logsys_loggers[subsysid].target_id); > - */ > + int32_t f; > + for (f = 0; f < logsys_loggers[subsysid].file_idx; f++) { > + qb_log_filter_ctl(logsys_loggers[subsysid].target_id, > + QB_LOG_FILTER_REMOVE, > + QB_LOG_FILTER_FILE, > + logsys_loggers[subsysid].files[f], > + LOG_TRACE); > + } > } > > logsys_loggers[subsysid].dirty = QB_TRUE; > @@ -192,8 +195,17 @@ static int logsys_config_file_set_unlocked ( > } > > if (logsys_loggers[subsysid].target_id > 0) { > - /* no one else is using this close it */ > - qb_log_file_close(logsys_loggers[subsysid].target_id); > + int num_using_current = 0; > + for (i = 0; i <= LOGSYS_MAX_SUBSYS_COUNT; i++) { > + if (logsys_loggers[subsysid].target_id == > + logsys_loggers[i].target_id) { > + num_using_current++; > + } > + } > + if (num_using_current == 1) { > + /* no one else is using this close it */ > + qb_log_file_close(logsys_loggers[subsysid].target_id); > + } > } > > logsys_loggers[subsysid].target_id = qb_log_file_open(file); _______________________________________________ discuss mailing list discuss@xxxxxxxxxxxx http://lists.corosync.org/mailman/listinfo/discuss