From 50ab29b64ba0fa0321a8ce0f5e25055b6837e676 Mon Sep 17 00:00:00 2001 From: Mark Spencer Date: Sun, 8 Jan 2006 00:08:49 +0000 Subject: Merge playback cleanups (bug #6163) git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@7864 65c4cc65-6c06-0410-ace0-fbb531ad65f3 --- apps/app_playback.c | 26 +++++++++----------------- 1 file changed, 9 insertions(+), 17 deletions(-) (limited to 'apps/app_playback.c') diff --git a/apps/app_playback.c b/apps/app_playback.c index 8f36fc707..653d95467 100644 --- a/apps/app_playback.c +++ b/apps/app_playback.c @@ -72,13 +72,13 @@ LOCAL_USER_DECL; static int playback_exec(struct ast_channel *chan, void *data) { - int res = 0, mres = 0; + int res = 0; struct localuser *u; - char *tmp = NULL; + char *tmp; int option_skip=0; int option_noanswer = 0; - char *front = NULL, *back = NULL; int priority_jump = 0; + AST_DECLARE_APP_ARGS(args, AST_APP_ARG(filenames); AST_APP_ARG(options); @@ -89,15 +89,13 @@ static int playback_exec(struct ast_channel *chan, void *data) return -1; } - LOCAL_USER_ADD(u); - tmp = ast_strdupa(data); if (!tmp) { ast_log(LOG_ERROR, "Out of memory!\n"); - LOCAL_USER_REMOVE(u); return -1; } + LOCAL_USER_ADD(u); AST_STANDARD_APP_ARGS(args, tmp); if (args.options) { @@ -119,13 +117,11 @@ static int playback_exec(struct ast_channel *chan, void *data) res = ast_answer(chan); } if (!res) { + int mres = 0; + char *front; + ast_stopstream(chan); - front = tmp; - while (!res && front) { - if ((back = strchr(front, '&'))) { - *back = '\0'; - back++; - } + while (!res && (front = strsep(&tmp, "&"))) { res = ast_streamfile(chan, front, chan->language); if (!res) { res = ast_waitstream(chan, ""); @@ -137,12 +133,8 @@ static int playback_exec(struct ast_channel *chan, void *data) res = 0; mres = 1; } - front = back; } - if (mres) - pbx_builtin_setvar_helper(chan, "PLAYBACKSTATUS", "FAILED"); - else - pbx_builtin_setvar_helper(chan, "PLAYBACKSTATUS", "SUCCESS"); + pbx_builtin_setvar_helper(chan, "PLAYBACKSTATUS", mres ? "FAILED" : "SUCCESS"); } LOCAL_USER_REMOVE(u); return res; -- cgit v1.2.3