mirror of
				https://github.com/asterisk/asterisk.git
				synced 2025-11-03 20:38:59 +00:00 
			
		
		
		
	Add dundi show peers summary stats (bug #3474)
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@4939 65c4cc65-6c06-0410-ace0-fbb531ad65f3
This commit is contained in:
		@@ -2462,6 +2462,11 @@ static int dundi_show_peers(int fd, int argc, char *argv[])
 | 
			
		||||
	int registeredonly=0;
 | 
			
		||||
	char avgms[20];
 | 
			
		||||
	char eid_str[20];
 | 
			
		||||
	int online_peers = 0;
 | 
			
		||||
	int offline_peers = 0;
 | 
			
		||||
	int unmonitored_peers = 0;
 | 
			
		||||
	int total_peers = 0;
 | 
			
		||||
 | 
			
		||||
	if ((argc != 3) && (argc != 4) && (argc != 5))
 | 
			
		||||
		return RESULT_SHOWUSAGE;
 | 
			
		||||
	if ((argc == 4)) {
 | 
			
		||||
@@ -2476,19 +2481,30 @@ static int dundi_show_peers(int fd, int argc, char *argv[])
 | 
			
		||||
		char status[20] = "";
 | 
			
		||||
        int print_line = -1;
 | 
			
		||||
		char srch[2000] = "";
 | 
			
		||||
		total_peers++;
 | 
			
		||||
		if (registeredonly && !peer->addr.sin_addr.s_addr)
 | 
			
		||||
			continue;
 | 
			
		||||
		if (peer->maxms) {
 | 
			
		||||
			if (peer->lastms < 0)
 | 
			
		||||
			if (peer->lastms < 0) {
 | 
			
		||||
				strncpy(status, "UNREACHABLE", sizeof(status) - 1);
 | 
			
		||||
			else if (peer->lastms > peer->maxms) 
 | 
			
		||||
				offline_peers++;
 | 
			
		||||
			}
 | 
			
		||||
			else if (peer->lastms > peer->maxms) {
 | 
			
		||||
				snprintf(status, sizeof(status), "LAGGED (%d ms)", peer->lastms);
 | 
			
		||||
			else if (peer->lastms) 
 | 
			
		||||
				offline_peers++;
 | 
			
		||||
			}
 | 
			
		||||
			else if (peer->lastms) {
 | 
			
		||||
				snprintf(status, sizeof(status), "OK (%d ms)", peer->lastms);
 | 
			
		||||
			else 
 | 
			
		||||
				online_peers++;
 | 
			
		||||
			}
 | 
			
		||||
			else {
 | 
			
		||||
				strncpy(status, "UNKNOWN", sizeof(status) - 1);
 | 
			
		||||
		} else 
 | 
			
		||||
				offline_peers++;
 | 
			
		||||
			}
 | 
			
		||||
		} else {
 | 
			
		||||
			strncpy(status, "Unmonitored", sizeof(status) - 1);
 | 
			
		||||
			unmonitored_peers++;
 | 
			
		||||
		}
 | 
			
		||||
		if (peer->avgms) 
 | 
			
		||||
			snprintf(avgms, sizeof(avgms), "%d ms", peer->avgms);
 | 
			
		||||
		else
 | 
			
		||||
@@ -2515,6 +2531,7 @@ static int dundi_show_peers(int fd, int argc, char *argv[])
 | 
			
		||||
					peer->dynamic ? "(D)" : "(S)", model2str(peer->model), avgms, status);
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
	ast_cli(fd, "%d dundi peers [%d online, %d offline, %d unmonitored]\n", total_peers, online_peers, offline_peers, unmonitored_peers);
 | 
			
		||||
	ast_mutex_unlock(&peerlock);
 | 
			
		||||
	return RESULT_SUCCESS;
 | 
			
		||||
#undef FORMAT
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user