Close logging stuff so system doesn't have to (bug #1855)

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@3230 65c4cc65-6c06-0410-ace0-fbb531ad65f3
1.0
Mark Spencer 21 years ago
parent dd4aba8022
commit 702b8a96b0

@ -585,6 +585,10 @@ static void quit_handler(int num, int nice, int safeshutdown, int restart)
if (option_verbose || option_console)
ast_verbose("Restarting Asterisk NOW...\n");
restartnow = 1;
/* close logger */
close_logger();
/* If there is a consolethread running send it a SIGHUP
so it can execvp, otherwise we can do it ourselves */
if (consolethread != AST_PTHREADT_NULL) {
@ -594,6 +598,9 @@ static void quit_handler(int num, int nice, int safeshutdown, int restart)
} else
execvp(_argv[0], _argv);
} else {
/* close logger */
close_logger();
}
exit(0);
}

@ -40,6 +40,7 @@ extern int load_modules(void);
extern int load_pbx(void);
/* Provided by logger.c */
extern int init_logger(void);
extern void close_logger(void);
/* Provided by frame.c */
extern int init_framer(void);
/* Provided by logger.c */

@ -428,6 +428,25 @@ int init_logger(void)
return -1;
}
void close_logger(void)
{
struct msglist *m, *tmp;
m = list;
ast_mutex_lock(&msglist_lock);
while(m) {
if (m->msg) {
free(m->msg);
}
tmp = m->next;
free(m);
m = tmp;
}
list = last = NULL;
ast_mutex_unlock(&msglist_lock);
return;
}
static void ast_log_vsyslog(int level, const char *file, int line, const char *function, const char *fmt, va_list args) {
char buf[BUFSIZ];

Loading…
Cancel
Save