From 804eb1d9f5064ab62e0e0e9cc3275562b8a75c0f Mon Sep 17 00:00:00 2001 From: mmichelson Date: Thu, 19 Jul 2007 18:59:30 +0000 Subject: The diff on this looks pretty big but all I did was remove a pointless if statement (always evaluates true). git-svn-id: http://svn.digium.com/svn/asterisk/branches/1.4@75978 f38db490-d61c-443f-a65b-d21fe96a405b --- apps/app_queue.c | 159 +++++++++++++++++++++++++++---------------------------- 1 file changed, 78 insertions(+), 81 deletions(-) (limited to 'apps/app_queue.c') diff --git a/apps/app_queue.c b/apps/app_queue.c index b4255a2a7..241a8b869 100644 --- a/apps/app_queue.c +++ b/apps/app_queue.c @@ -3395,102 +3395,99 @@ check_turns: if (res) goto stop; - /* always true... */ - if (!res) { - int makeannouncement = 0; + int makeannouncement = 0; - for (;;) { - /* This is the wait loop for the head caller*/ - /* To exit, they may get their call answered; */ - /* they may dial a digit from the queue context; */ - /* or, they may timeout. */ + for (;;) { + /* This is the wait loop for the head caller*/ + /* To exit, they may get their call answered; */ + /* they may dial a digit from the queue context; */ + /* or, they may timeout. */ - enum queue_member_status stat; + enum queue_member_status stat; - /* Leave if we have exceeded our queuetimeout */ - if (qe.expire && (time(NULL) > qe.expire)) { - record_abandoned(&qe); - reason = QUEUE_TIMEOUT; - res = 0; - ast_queue_log(args.queuename, chan->uniqueid, "NONE", "EXITWITHTIMEOUT", "%d", qe.pos); - break; - } - - if (makeannouncement) { - /* Make a position announcement, if enabled */ - if (qe.parent->announcefrequency && !ringing) - if ((res = say_position(&qe))) - goto stop; - - } - makeannouncement = 1; + /* Leave if we have exceeded our queuetimeout */ + if (qe.expire && (time(NULL) > qe.expire)) { + record_abandoned(&qe); + reason = QUEUE_TIMEOUT; + res = 0; + ast_queue_log(args.queuename, chan->uniqueid, "NONE", "EXITWITHTIMEOUT", "%d", qe.pos); + break; + } - /* Make a periodic announcement, if enabled */ - if (qe.parent->periodicannouncefrequency && !ringing) - if ((res = say_periodic_announcement(&qe))) + if (makeannouncement) { + /* Make a position announcement, if enabled */ + if (qe.parent->announcefrequency && !ringing) + if ((res = say_position(&qe))) goto stop; - /* Try calling all queue members for 'timeout' seconds */ - res = try_calling(&qe, args.options, args.announceoverride, args.url, &go_on, args.agi); - if (res) + } + makeannouncement = 1; + + /* Make a periodic announcement, if enabled */ + if (qe.parent->periodicannouncefrequency && !ringing) + if ((res = say_periodic_announcement(&qe))) goto stop; - stat = get_member_status(qe.parent, qe.max_penalty); + /* Try calling all queue members for 'timeout' seconds */ + res = try_calling(&qe, args.options, args.announceoverride, args.url, &go_on, args.agi); + if (res) + goto stop; - /* exit after 'timeout' cycle if 'n' option enabled */ - if (go_on) { - if (option_verbose > 2) - ast_verbose(VERBOSE_PREFIX_3 "Exiting on time-out cycle\n"); - ast_queue_log(args.queuename, chan->uniqueid, "NONE", "EXITWITHTIMEOUT", "%d", qe.pos); - record_abandoned(&qe); - reason = QUEUE_TIMEOUT; - res = 0; - break; - } + stat = get_member_status(qe.parent, qe.max_penalty); - /* leave the queue if no agents, if enabled */ - if (qe.parent->leavewhenempty && (stat == QUEUE_NO_MEMBERS)) { - record_abandoned(&qe); - reason = QUEUE_LEAVEEMPTY; - ast_queue_log(args.queuename, chan->uniqueid, "NONE", "EXITEMPTY", "%d|%d|%ld", qe.pos, qe.opos, (long)(time(NULL) - qe.start)); - res = 0; - break; - } + /* exit after 'timeout' cycle if 'n' option enabled */ + if (go_on) { + if (option_verbose > 2) + ast_verbose(VERBOSE_PREFIX_3 "Exiting on time-out cycle\n"); + ast_queue_log(args.queuename, chan->uniqueid, "NONE", "EXITWITHTIMEOUT", "%d", qe.pos); + record_abandoned(&qe); + reason = QUEUE_TIMEOUT; + res = 0; + break; + } - /* leave the queue if no reachable agents, if enabled */ - if ((qe.parent->leavewhenempty == QUEUE_EMPTY_STRICT) && (stat == QUEUE_NO_REACHABLE_MEMBERS)) { - record_abandoned(&qe); - reason = QUEUE_LEAVEUNAVAIL; - ast_queue_log(args.queuename, chan->uniqueid, "NONE", "EXITEMPTY", "%d|%d|%ld", qe.pos, qe.opos, (long)(time(NULL) - qe.start)); - res = 0; - break; - } + /* leave the queue if no agents, if enabled */ + if (qe.parent->leavewhenempty && (stat == QUEUE_NO_MEMBERS)) { + record_abandoned(&qe); + reason = QUEUE_LEAVEEMPTY; + ast_queue_log(args.queuename, chan->uniqueid, "NONE", "EXITEMPTY", "%d|%d|%ld", qe.pos, qe.opos, (long)(time(NULL) - qe.start)); + res = 0; + break; + } - /* Leave if we have exceeded our queuetimeout */ - if (qe.expire && (time(NULL) > qe.expire)) { - record_abandoned(&qe); - reason = QUEUE_TIMEOUT; - res = 0; - ast_queue_log(args.queuename, chan->uniqueid, "NONE", "EXITWITHTIMEOUT", "%d", qe.pos); - break; - } + /* leave the queue if no reachable agents, if enabled */ + if ((qe.parent->leavewhenempty == QUEUE_EMPTY_STRICT) && (stat == QUEUE_NO_REACHABLE_MEMBERS)) { + record_abandoned(&qe); + reason = QUEUE_LEAVEUNAVAIL; + ast_queue_log(args.queuename, chan->uniqueid, "NONE", "EXITEMPTY", "%d|%d|%ld", qe.pos, qe.opos, (long)(time(NULL) - qe.start)); + res = 0; + break; + } - /* OK, we didn't get anybody; wait for 'retry' seconds; may get a digit to exit with */ - res = wait_a_bit(&qe); - if (res) - goto stop; + /* Leave if we have exceeded our queuetimeout */ + if (qe.expire && (time(NULL) > qe.expire)) { + record_abandoned(&qe); + reason = QUEUE_TIMEOUT; + res = 0; + ast_queue_log(args.queuename, chan->uniqueid, "NONE", "EXITWITHTIMEOUT", "%d", qe.pos); + break; + } + /* OK, we didn't get anybody; wait for 'retry' seconds; may get a digit to exit with */ + res = wait_a_bit(&qe); + if (res) + goto stop; - /* Since this is a priority queue and - * it is not sure that we are still at the head - * of the queue, go and check for our turn again. - */ - if (!is_our_turn(&qe)) { - if (option_debug) - ast_log(LOG_DEBUG, "Darn priorities, going back in queue (%s)!\n", - qe.chan->name); - goto check_turns; - } + + /* Since this is a priority queue and + * it is not sure that we are still at the head + * of the queue, go and check for our turn again. + */ + if (!is_our_turn(&qe)) { + if (option_debug) + ast_log(LOG_DEBUG, "Darn priorities, going back in queue (%s)!\n", + qe.chan->name); + goto check_turns; } } -- cgit v1.2.3