]> git.ipfire.org Git - thirdparty/asterisk.git/commitdiff
Fix Not Unreferencing A Spied Channel
authorMichael L. Young <elgueromexicano@gmail.com>
Wed, 8 Aug 2012 22:40:01 +0000 (22:40 +0000)
committerMichael L. Young <elgueromexicano@gmail.com>
Wed, 8 Aug 2012 22:40:01 +0000 (22:40 +0000)
When a channel hangs up while being spied upon and the option to exit the
ChanSpy application when the spied on channel hangs up is set,
ast_autochan_destroy is not being called and therefore a reference to the spied
upon channel is not removed.

The symptom being reported was that when using func_group in the dialplan and
calling "group show channels" at the cli, the spied upon channel was still
being shown while "core show channels" showed that the channel was not up.

This patch calls ast_autochan_destroy when a spied upon channel hangs up and
the option to exit the ChanSpy application is set, removing the reference to
the channel allowing the count for the group that the spied channel was part of
to be decremented.

(closes issue ASTERISK-17515)
Reported by: Arkadiusz Malka
Tested by: Alexandr Gordeev, Michael L. Young
Patches:
    asterisk-17515-destroy-autochan.diff
                                    uploaded by Michael L. Young (license 5026)

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

apps/app_chanspy.c

index 21674a533ea2d776c382eb153d970f4243e37c1c..bd207437f64061f9050f1ee6547ad6a42ce6b6d3 100644 (file)
@@ -1020,6 +1020,7 @@ static int common_exec(struct ast_channel *chan, struct ast_flags *flags,
                                        }
                                }
                        } else if (res == 0 && ast_test_flag(flags, OPTION_EXITONHANGUP)) {
+                               ast_autochan_destroy(autochan);
                                iter = ast_channel_iterator_destroy(iter);
                                goto exit;
                        }