[Freeswitch-trunk] [GIT] branch master updated. git2svn-syncpoint-master-1647-g9986f4e

svnnotify at freeswitch.org svnnotify at freeswitch.org
Sat Jan 29 00:53:46 MSK 2011


This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "".

The branch, master has been updated
       via  9986f4ebf2a0c40cc99bc7f9f03f2dec6ae74645 (commit)
       via  b3ac44f555a80f8278c5f915cfb36766903905a4 (commit)
      from  6d3abd41cadef3a2bff8175487c094c80d7d9cf7 (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
commit 9986f4ebf2a0c40cc99bc7f9f03f2dec6ae74645
Merge: 6d3abd4 b3ac44f
Author: Raymond Chandler <intralanman at gmail.com>
Date:   Fri Jan 28 16:12:07 2011 -0500

    Merge branch 'master' of fs-git:freeswitch


commit b3ac44f555a80f8278c5f915cfb36766903905a4
Author: Daniel Swarbrick <daniel at seventhsignal.de>
Date:   Fri Jan 28 20:36:06 2011 +0100

    add support for getting current call count

diff --git a/src/mod/event_handlers/mod_snmp/subagent.c b/src/mod/event_handlers/mod_snmp/subagent.c
index 8f08baf..bad3dc6 100644
--- a/src/mod/event_handlers/mod_snmp/subagent.c
+++ b/src/mod/event_handlers/mod_snmp/subagent.c
@@ -49,6 +49,14 @@ void init_subagent(void)
 }
 
 
+static int sql_count_callback(void *pArg, int argc, char **argv, char **columnNames)
+{
+	uint32_t *count = (uint32_t *) pArg;
+	*count = atoi(argv[0]);
+	return 0;
+}
+
+
 int handle_identity(netsnmp_mib_handler *handler, netsnmp_handler_registration *reginfo, netsnmp_agent_request_info *reqinfo, netsnmp_request_info *requests)
 {
 	netsnmp_request_info *request = NULL;
@@ -113,13 +121,20 @@ int handle_systemStats(netsnmp_mib_handler *handler, netsnmp_handler_registratio
 			snmp_set_var_typed_value(requests->requestvb, ASN_GAUGE, (u_char *) &int_val, sizeof(int_val));
 			break;
 		case SS_CURRENT_CALLS:
-			/*
-			 * This is zero for now, since there is no convenient way to get total call
-			 * count (not to be confused with session count), without touching the
-			 * database.
-			 */
-			int_val = 0;
+			{
+			switch_cache_db_handle_t *dbh;
+			char sql[1024] = "", hostname[256] = "";
+
+			if (switch_core_db_handle(&dbh) != SWITCH_STATUS_SUCCESS) {
+				return SNMP_ERR_GENERR;
+			}
+
+			gethostname(hostname, sizeof(hostname));
+			sprintf(sql, "SELECT COUNT(*) FROM calls WHERE hostname='%s'", hostname);
+			switch_cache_db_execute_sql_callback(dbh, sql, sql_count_callback, &int_val, NULL);
 			snmp_set_var_typed_value(requests->requestvb, ASN_GAUGE, (u_char *) &int_val, sizeof(int_val));
+			switch_cache_db_release_db_handle(&dbh);
+			}
 			break;
 		case SS_SESSIONS_PER_SECOND:
 			switch_core_session_ctl(SCSC_LAST_SPS, &int_val);

-----------------------------------------------------------------------

Summary of changes:
 src/mod/event_handlers/mod_snmp/subagent.c |   27 +++++++++++++++++++++------
 1 files changed, 21 insertions(+), 6 deletions(-)


hooks/post-receive
-- 




More information about the Freeswitch-trunk mailing list