mirror of
				https://github.com/asterisk/asterisk.git
				synced 2025-10-31 02:37:10 +00:00 
			
		
		
		
	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
This commit is contained in:
		| @@ -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; | ||||
|   | ||||
		Reference in New Issue
	
	Block a user