From 7166081028a74eba8498ecce18a1d116e94a7db6 Mon Sep 17 00:00:00 2001 From: Mark Michelson Date: Mon, 26 Nov 2007 23:10:49 +0000 Subject: [PATCH] After issuing a "say load new", if a caller hangs up during the middle of playback of a number, app_playback will continue to try to play the remaining files. With this change, no more files will be played back upon hangup. (closes issue #11345, reported and patched by IgorG) git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@89618 65c4cc65-6c06-0410-ace0-fbb531ad65f3 --- apps/app_playback.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/apps/app_playback.c b/apps/app_playback.c index c5f36cdc53..ae06b59a80 100644 --- a/apps/app_playback.c +++ b/apps/app_playback.c @@ -192,7 +192,7 @@ static int do_say(say_args_t *a, const char *s, const char *options, int depth) AST_LIST_INSERT_HEAD(&head, n, entries); /* scan the body, one piece at a time */ - while ( ret <= 0 && (x = strsep(&rule, ",")) ) { /* exit on key */ + while ( !ret && (x = strsep(&rule, ",")) ) { /* exit on key */ char fn[128]; const char *p, *fmt, *data; /* format and data pointers */ @@ -241,6 +241,10 @@ static int do_say(say_args_t *a, const char *s, const char *options, int depth) strcpy(fn2 + l, data); ret = do_say(a, fn2, options, depth); } + + if (ret) { + break; + } } } ast_var_delete(n);