mirror of
https://github.com/asterisk/asterisk.git
synced 2025-09-05 20:20:07 +00:00
core: Fix handling of restart from remote console.
We cannot use need_el_end and SIGURG when restarting. Instead we need to run el_end within the SIGHUP restartnow handler. ASTERISK-28158 Change-Id: Ia852276363c81bdcf1aa29eb4558c5c2fa1218a0
This commit is contained in:
@@ -1791,10 +1791,17 @@ static struct sigaction urg_handler = {
|
||||
|
||||
static void _hup_handler(int num)
|
||||
{
|
||||
int a = 0, save_errno = errno;
|
||||
printf("Received HUP signal -- Reloading configs\n");
|
||||
if (restartnow)
|
||||
int a = 0;
|
||||
int save_errno = errno;
|
||||
|
||||
if (restartnow) {
|
||||
if (el) {
|
||||
el_end(el);
|
||||
}
|
||||
execvp(_argv[0], _argv);
|
||||
}
|
||||
|
||||
printf("Received HUP signal -- Reloading configs\n");
|
||||
sig_flags.need_reload = 1;
|
||||
if (sig_alert_pipe[1] != -1) {
|
||||
if (write(sig_alert_pipe[1], &a, sizeof(a)) < 0) {
|
||||
@@ -2137,7 +2144,7 @@ static void really_quit(int num, shutdown_nice_t niceness, int restart)
|
||||
if (el_hist != NULL) {
|
||||
history_end(el_hist);
|
||||
}
|
||||
} else {
|
||||
} else if (!restart) {
|
||||
sig_flags.need_el_end = 1;
|
||||
pthread_kill(consolethread, SIGURG);
|
||||
}
|
||||
|
Reference in New Issue
Block a user