Просмотр исходного кода

LOG: cleanup logging resources at exit

Signed-off-by: Angus Salkeld <asalkeld@redhat.com>
Reviewed-by: Steven Dake <sdake@redhat.com>
Angus Salkeld 14 лет назад
Родитель
Сommit
0fc51c40fd
3 измененных файлов с 17 добавлено и 1 удалено
  1. 14 0
      exec/logsys.c
  2. 1 1
      exec/util.c
  3. 2 0
      include/corosync/engine/logsys.h

+ 14 - 0
exec/logsys.c

@@ -243,6 +243,20 @@ static const char *_logsys_tags_stringify(uint32_t tags)
 	}
 }
 
+void logsys_system_fini (void)
+{
+	int i;
+	int f;
+	for (i = 0; i < LOGSYS_MAX_SUBSYS_COUNT; i++) {
+		free(logsys_loggers[i].logfile);
+		for (f = 0; i < logsys_loggers[i].file_idx; f++) {
+			free(logsys_loggers[i].files[f]);
+		}
+	}
+
+	qb_log_fini ();
+}
+
 /*
  * Internal API - exported
  */

+ 1 - 1
exec/util.c

@@ -147,7 +147,7 @@ void _corosync_exit_error (
 		log_printf (LOGSYS_LEVEL_ERROR, "Corosync Cluster Engine exiting "
 			"with status %d at %s:%u.\n", err, file, line);
 	}
-	qb_log_fini();
+	logsys_system_fini ();
 	exit (err);
 }
 

+ 2 - 0
include/corosync/engine/logsys.h

@@ -157,6 +157,8 @@ extern int _logsys_system_setup(
 	int syslog_facility,
 	int syslog_priority);
 
+extern void logsys_system_fini (void);
+
 extern int _logsys_config_subsys_get (
 	const char *subsys);