[Asterisk-cvs] asterisk/pbx pbx_dundi.c,1.27,1.28

markster at lists.digium.com markster at lists.digium.com
Mon Jan 31 20:59:06 CST 2005


Update of /usr/cvsroot/asterisk/pbx
In directory mongoose.digium.com:/tmp/cvs-serv21114/pbx

Modified Files:
	pbx_dundi.c 
Log Message:
Add dundi show peers summary stats (bug #3474)


Index: pbx_dundi.c
===================================================================
RCS file: /usr/cvsroot/asterisk/pbx/pbx_dundi.c,v
retrieving revision 1.27
retrieving revision 1.28
diff -u -d -r1.27 -r1.28
--- pbx_dundi.c	25 Jan 2005 06:10:20 -0000	1.27
+++ pbx_dundi.c	1 Feb 2005 03:00:28 -0000	1.28
@@ -2462,6 +2462,11 @@
 	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 @@
 		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 @@
 					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




More information about the svn-commits mailing list