[asterisk-commits] mmichelson: branch 1.4 r75978 - /branches/1.4/apps/app_queue.c

SVN commits to the Asterisk project asterisk-commits at lists.digium.com
Thu Jul 19 13:59:31 CDT 2007


Author: mmichelson
Date: Thu Jul 19 13:59:30 2007
New Revision: 75978

URL: http://svn.digium.com/view/asterisk?view=rev&rev=75978
Log:
The diff on this looks pretty big but all I did was remove a pointless if statement (always evaluates true).


Modified:
    branches/1.4/apps/app_queue.c

Modified: branches/1.4/apps/app_queue.c
URL: http://svn.digium.com/view/asterisk/branches/1.4/apps/app_queue.c?view=diff&rev=75978&r1=75977&r2=75978
==============================================================================
--- branches/1.4/apps/app_queue.c (original)
+++ branches/1.4/apps/app_queue.c Thu Jul 19 13:59:30 2007
@@ -3395,102 +3395,99 @@
 		if (res)
 			goto stop;
 
-		/* always true... */
-		if (!res) {
-			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. */
-
-				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;
-
-				/* Make a periodic announcement, if enabled */
-				if (qe.parent->periodicannouncefrequency && !ringing)
-					if ((res = say_periodic_announcement(&qe)))
+		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. */
+
+			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;
 
-				/* 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);
-
-				/* 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 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 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 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;
-				}
+			/* 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;
+
+			stat = get_member_status(qe.parent, qe.max_penalty);
+
+			/* 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 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 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 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;
 			}
 		}
 




More information about the asterisk-commits mailing list