aboutsummaryrefslogtreecommitdiffstats
path: root/res/res_agi.c
diff options
context:
space:
mode:
authortilghman <tilghman@f38db490-d61c-443f-a65b-d21fe96a405b>2008-04-17 12:59:04 +0000
committertilghman <tilghman@f38db490-d61c-443f-a65b-d21fe96a405b>2008-04-17 12:59:04 +0000
commita7b77f9c821b0818b6b33073654f7a57eb7fbf83 (patch)
tree1102594dfc177de303f4ea727b223c8e729353f3 /res/res_agi.c
parent68822de9df37f7572826933bf059443e49a596a6 (diff)
Merged revisions 114195 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4 ........ r114195 | tilghman | 2008-04-17 07:56:38 -0500 (Thu, 17 Apr 2008) | 8 lines Add special case for when the agi cannot be executed, to comply with the documentation that we return failure in that case. (closes issue #12462) Reported by: fmueller Patches: 20080416__bug12462.diff.txt uploaded by Corydon76 (license 14) Tested by: fmueller ........ git-svn-id: http://svn.digium.com/svn/asterisk/trunk@114196 f38db490-d61c-443f-a65b-d21fe96a405b
Diffstat (limited to 'res/res_agi.c')
-rw-r--r--res/res_agi.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/res/res_agi.c b/res/res_agi.c
index caa015a7e..4370654d0 100644
--- a/res/res_agi.c
+++ b/res/res_agi.c
@@ -693,6 +693,8 @@ static enum agi_result launch_script(struct ast_channel *chan, char *script, cha
execv(script, argv);
/* Can't use ast_log since FD's are closed */
ast_child_verbose(1, "Failed to execute '%s': %s", script, strerror(errno));
+ /* Special case to set status of AGI to failure */
+ fprintf(stdout, "failure\n");
fflush(stdout);
_exit(1);
}
@@ -2646,6 +2648,12 @@ static enum agi_result run_agi(struct ast_channel *chan, char *request, AGI *agi
break;
}
+ /* Special case for inability to execute child process */
+ if (*buf && strncasecmp(buf, "failure", 7) == 0) {
+ returnstatus = AGI_RESULT_FAILURE;
+ break;
+ }
+
/* get rid of trailing newline, if any */
if (*buf && buf[strlen(buf) - 1] == '\n')
buf[strlen(buf) - 1] = 0;