From caa099357b62e0e3f7e287201876e3da10f33e8f Mon Sep 17 00:00:00 2001 From: Joshua Colp Date: Mon, 15 Jan 2007 16:36:07 +0000 Subject: [PATCH] Move event processing into do_message so that it gets executed again when events are tripped. git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@50895 65c4cc65-6c06-0410-ace0-fbb531ad65f3 --- main/manager.c | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/main/manager.c b/main/manager.c index 3761754a55..79ca6e9424 100644 --- a/main/manager.c +++ b/main/manager.c @@ -2059,6 +2059,11 @@ static int do_message(struct mansession *s) int res; for (;;) { + /* Check if any events are pending and do them if needed */ + if (s->eventq->next) { + if (process_events(s)) + return -1; + } res = get_input(s, header_buf); if (res == 0) { continue; @@ -2086,14 +2091,8 @@ static void *session_do(void *data) astman_append(s, "Asterisk Call Manager/1.0\r\n"); ast_mutex_unlock(&s->__lock); for (;;) { - res = do_message(s); - - if (res < 0) { + if ((res = do_message(s)) < 0) break; - } else if (s->eventq->next) { - if (process_events(s)) - break; - } } if (s->authenticated) { if (option_verbose > 1) {