summaryrefslogtreecommitdiff
path: root/main/manager.c
diff options
context:
space:
mode:
authorGeorge Joseph <george.joseph@fairview5.com>2014-08-30 17:24:02 +0000
committerGeorge Joseph <george.joseph@fairview5.com>2014-08-30 17:24:02 +0000
commitd4dd19cb7732558ab1b35b5b2afa66f550de6948 (patch)
treef828a69a396745f8d76587f55a48988450f15b21 /main/manager.c
parent34ea6940943c82dbc52e86ca6b1c73febf762bf5 (diff)
manager: Make WaitEvent action respect eventfilters
A WaitEvent issued via an http session isn't respecting eventfilters defined for the user. I just added a match_filter to the predicate that controls astman_append. Tested by: George Joseph Review: https://reviewboard.asterisk.org/r/3958/ ........ Merged revisions 422439 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 422440 from http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged revisions 422441 from http://svn.asterisk.org/svn/asterisk/branches/12 git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@422442 65c4cc65-6c06-0410-ace0-fbb531ad65f3
Diffstat (limited to 'main/manager.c')
-rw-r--r--main/manager.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/main/manager.c b/main/manager.c
index c931b9dfb..92d364e26 100644
--- a/main/manager.c
+++ b/main/manager.c
@@ -1365,6 +1365,8 @@ static AO2_GLOBAL_OBJ_STATIC(event_docs);
static enum add_filter_result manager_add_filter(const char *filter_pattern, struct ao2_container *whitefilters, struct ao2_container *blackfilters);
+static int match_filter(struct mansession *s, char *eventdata);
+
/*!
* @{ \brief Define AMI message types.
*/
@@ -3585,8 +3587,9 @@ static int action_waitevent(struct mansession *s, const struct message *m)
struct eventqent *eqe = s->session->last_ev;
astman_send_response(s, m, "Success", "Waiting for Event completed.");
while ((eqe = advance_event(eqe))) {
- if (((s->session->readperm & eqe->category) == eqe->category) &&
- ((s->session->send_events & eqe->category) == eqe->category)) {
+ if (((s->session->readperm & eqe->category) == eqe->category)
+ && ((s->session->send_events & eqe->category) == eqe->category)
+ && match_filter(s, eqe->eventdata)) {
astman_append(s, "%s", eqe->eventdata);
}
s->session->last_ev = eqe;