diff options
author | russell <russell@f38db490-d61c-443f-a65b-d21fe96a405b> | 2008-08-15 15:12:08 +0000 |
---|---|---|
committer | russell <russell@f38db490-d61c-443f-a65b-d21fe96a405b> | 2008-08-15 15:12:08 +0000 |
commit | da8a58787f5998f49f4f184320eab6169898acc6 (patch) | |
tree | faa56cc3e66995e340b8700c439a6ec047a4cd23 /main | |
parent | 54c90a0775297896ea4fb8320b966cf5c9c58399 (diff) |
Merged revisions 138028 via svnmerge from
https://origsvn.digium.com/svn/asterisk/trunk
................
r138028 | russell | 2008-08-15 10:09:46 -0500 (Fri, 15 Aug 2008) | 17 lines
Merged revisions 138027 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4
........
r138027 | russell | 2008-08-15 10:07:16 -0500 (Fri, 15 Aug 2008) | 9 lines
Ensure that when a hangup occurs in autoservice, that a hangup frame gets
properly deferred to be read from the channel owner when it gets taken out
of autoservice.
(closes issue #12874)
Reported by: dimas
Patches:
v1-12874.patch uploaded by dimas (license 88)
........
................
git-svn-id: http://svn.digium.com/svn/asterisk/branches/1.6.0@138029 f38db490-d61c-443f-a65b-d21fe96a405b
Diffstat (limited to 'main')
-rw-r--r-- | main/autoservice.c | 14 |
1 files changed, 5 insertions, 9 deletions
diff --git a/main/autoservice.c b/main/autoservice.c index 1f18dee25..d3d0333d1 100644 --- a/main/autoservice.c +++ b/main/autoservice.c @@ -152,14 +152,7 @@ static void *autoservice_run(void *ign) } } - if (!defer_frame) { - if (f) { - ast_frfree(f); - } - continue; - } - - if (f) { + if (defer_frame) { for (i = 0; i < x; i++) { struct ast_frame *dup_f; @@ -167,12 +160,15 @@ static void *autoservice_run(void *ign) continue; } - if ((dup_f = ast_frdup(f))) { + if ((dup_f = ast_frdup(defer_frame))) { AST_LIST_INSERT_TAIL(&ents[i]->deferred_frames, dup_f, frame_list); } break; } + } + + if (f) { ast_frfree(f); } } |