Avoid zombies when the channel exits before the AGI.

(closes issue #12648)
 Reported by: gkloepfer
 Patches: 
       20080514__bug12648.diff.txt uploaded by Corydon76 (license 14)
 Tested by: gkloepfer


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@116466 65c4cc65-6c06-0410-ace0-fbb531ad65f3
This commit is contained in:
Tilghman Lesher
2008-05-14 21:38:09 +00:00
parent 4b2a679f9e
commit 01f5aee7ac

View File

@@ -1934,9 +1934,13 @@ static enum agi_result run_agi(struct ast_channel *chan, char *request, AGI *agi
if (pid > -1) {
const char *sighup = pbx_builtin_getvar_helper(chan, "AGISIGHUP");
if (ast_strlen_zero(sighup) || !ast_false(sighup)) {
if (kill(pid, SIGHUP))
if (kill(pid, SIGHUP)) {
ast_log(LOG_WARNING, "unable to send SIGHUP to AGI process %d: %s\n", pid, strerror(errno));
} else { /* Give the process a chance to die */
usleep(1);
}
}
waitpid(pid, status, WNOHANG);
}
fclose(readf);
return returnstatus;