]> git.ipfire.org Git - thirdparty/asterisk.git/commitdiff
Make indicate/control frames WRITE events on framehooks. Also, if a framehook
authorMatthew Nicholson <mnicholson@digium.com>
Mon, 9 May 2011 14:09:38 +0000 (14:09 +0000)
committerMatthew Nicholson <mnicholson@digium.com>
Mon, 9 May 2011 14:09:38 +0000 (14:09 +0000)
returns a non-control frame, don't forward it to the channel.

(closes issue #19251)
Reported by: irroot
Patches:
      (modified) framehook_indicate.patch2 uploaded by irroot (license 52)
Tested by: irroot

git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@318142 65c4cc65-6c06-0410-ace0-fbb531ad65f3

main/channel.c

index f055a04606c495679fbd6a312e1e782c795aa3b4..5025f0cd66d606c877bd768685aed9f556d61eac 100644 (file)
@@ -4268,7 +4268,9 @@ int ast_indicate_data(struct ast_channel *chan, int _condition,
                awesome_frame = ast_frdup(&frame);
 
                /* who knows what we will get back! the anticipation is killing me. */
-               if (!(awesome_frame = ast_framehook_list_read_event(chan->framehooks, awesome_frame))) {
+               if (!(awesome_frame = ast_framehook_list_write_event(chan->framehooks, awesome_frame))
+                       || awesome_frame->frametype != AST_FRAME_CONTROL) {
+
                        res = 0;
                        goto indicate_cleanup;
                }