static int agi_exec_full(struct ast_channel *chan, void *data, int enhanced, int dead)
{
enum agi_result res;
- struct ast_module_user *u;
char buf[AGI_BUF_LEN] = "", *tmp = buf;
int fds[2], efd = -1, pid;
AST_DECLARE_APP_ARGS(args,
memset(&agi, 0, sizeof(agi));
AST_STANDARD_APP_ARGS(args, tmp);
args.argv[args.argc] = NULL;
-
- u = ast_module_user_add(chan);
#if 0
/* Answer if need be */
if (chan->_state != AST_STATE_UP) {
- if (ast_answer(chan)) {
- ast_module_user_remove(u);
+ if (ast_answer(chan))
return -1;
- }
}
#endif
res = launch_script(chan, args.argv[0], args.argv, fds, enhanced ? &efd : NULL, &pid);
close(efd);
ast_unreplace_sigchld();
}
- ast_module_user_remove(u);
switch (res) {
case AGI_RESULT_SUCCESS: