mirror of
				https://github.com/asterisk/asterisk.git
				synced 2025-10-31 10:47:18 +00:00 
			
		
		
		
	Merged revisions 125476 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4 ........ r125476 | mmichelson | 2008-06-26 15:56:01 -0500 (Thu, 26 Jun 2008) | 11 lines Prior to this patch, the "queue show" command used cached information for realtime queues instead of giving up-to-date info. Now realtime is queried for the latest and greatest in queue info. (closes issue #12858) Reported by: bcnit Patches: queue_show.patch uploaded by putnopvut (license 60) ........ git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@125477 65c4cc65-6c06-0410-ace0-fbb531ad65f3
This commit is contained in:
		| @@ -5438,9 +5438,19 @@ static char *__queues_show(struct mansession *s, int fd, int argc, char **argv) | ||||
| 	if (argc != 2 && argc != 3) | ||||
| 		return CLI_SHOWUSAGE; | ||||
|  | ||||
| 	/* We only want to load realtime queues when a specific queue is asked for. */ | ||||
| 	if (argc == 3)	/* specific queue */ | ||||
| 	if (argc == 3)	{ /* specific queue */ | ||||
| 		load_realtime_queue(argv[2]); | ||||
| 	} | ||||
| 	else if (ast_check_realtime("queues")) { | ||||
| 		struct ast_config *cfg = ast_load_realtime_multientry("queues", "name LIKE", "%", SENTINEL); | ||||
| 		char *queuename; | ||||
| 		if (cfg) { | ||||
| 			for (queuename = ast_category_browse(cfg, NULL); !ast_strlen_zero(queuename); queuename = ast_category_browse(cfg, queuename)) { | ||||
| 				load_realtime_queue(queuename); | ||||
| 			} | ||||
| 			ast_config_destroy(cfg); | ||||
| 		} | ||||
| 	} | ||||
|  | ||||
| 	queue_iter = ao2_iterator_init(queues, 0); | ||||
| 	while ((q = ao2_iterator_next(&queue_iter))) { | ||||
| @@ -5506,11 +5516,15 @@ static char *__queues_show(struct mansession *s, int fd, int argc, char **argv) | ||||
| 		} | ||||
| 		do_print(s, fd, "");	/* blank line between entries */ | ||||
| 		ao2_unlock(q); | ||||
| 		if (argc == 3)	{ /* print a specific entry */ | ||||
| 		if (q->realtime || argc == 3) { | ||||
| 			/* If a queue is realtime, then that means we used load_realtime_queue() above | ||||
| 			 * to get its information. This means we have an extra reference we need to | ||||
| 			 * remove at this point. If a specific queue was requested, then it also needs | ||||
| 			 * to be unreffed here even if it is not a realtime queue. | ||||
| 			 */ | ||||
| 			queue_unref(q); | ||||
| 			break; | ||||
| 		} | ||||
| 		queue_unref(q); | ||||
| 		queue_unref(q); /* Unref the iterator's reference */ | ||||
| 	} | ||||
| 	if (!found) { | ||||
| 		if (argc == 3) | ||||
|   | ||||
		Reference in New Issue
	
	Block a user