[Freeswitch-svn] [commit] r10433 - freeswitch/trunk/scripts/contrib/mrene/mod_limit
FreeSWITCH SVN
mrene at freeswitch.org
Mon Nov 17 14:05:41 PST 2008
Author: mrene
Date: Mon Nov 17 17:05:40 2008
New Revision: 10433
Log:
Added limit_hash_usage(realm id) api
Modified:
freeswitch/trunk/scripts/contrib/mrene/mod_limit/mod_limit.c
Modified: freeswitch/trunk/scripts/contrib/mrene/mod_limit/mod_limit.c
==============================================================================
--- freeswitch/trunk/scripts/contrib/mrene/mod_limit/mod_limit.c (original)
+++ freeswitch/trunk/scripts/contrib/mrene/mod_limit/mod_limit.c Mon Nov 17 17:05:40 2008
@@ -851,6 +851,44 @@
switch_mutex_unlock(globals.limit_hash_mutex);
}
+#define LIMIT_HASH_USAGE_USAGE "<realm> <id>"
+SWITCH_STANDARD_API(limit_hash_usage_function)
+{
+ int argc = 0;
+ char *argv[3] = { 0 };
+ char *mydata = NULL;
+ char *hash_key = NULL;
+ limit_hash_item_t *item = NULL;
+ uint32_t count = 0;
+
+ switch_mutex_lock(globals.limit_hash_mutex);
+
+ if (!switch_strlen_zero(cmd)) {
+ switch_assert(mydata = strdup(cmd));
+ argc = switch_separate_string(mydata, ' ', argv, (sizeof(argv) / sizeof(argv[0])));
+ }
+
+ if (argc < 2) {
+ stream->write_function(stream, "USAGE: limit_hash_usage %s\n", LIMIT_HASH_USAGE_USAGE);
+ goto end;
+ }
+
+ hash_key = switch_mprintf("%s_%s", argv[0], argv[1]);
+
+ if ((item = switch_core_hash_find(globals.limit_hash, hash_key))) {
+ count = item->total_usage;
+ }
+
+ stream->write_function(stream, "%d", count);
+
+end:
+ switch_safe_free(mydata);
+ switch_safe_free(hash_key);
+ switch_mutex_unlock(globals.limit_hash_mutex);
+
+ return SWITCH_STATUS_SUCCESS;
+}
+
SWITCH_MODULE_LOAD_FUNCTION(mod_limit_load)
{
switch_status_t status;
@@ -880,6 +918,7 @@
SWITCH_ADD_APP(app_interface, "hash", "Insert into the hashtable", HASH_DESC, hash_function, HASH_USAGE, SAF_SUPPORT_NOMEDIA)
SWITCH_ADD_APP(app_interface, "group", "Manage a group", GROUP_DESC, group_function, GROUP_USAGE, SAF_SUPPORT_NOMEDIA);
+ SWITCH_ADD_API(commands_api_interface, "limit_hash_usage", "Gets the usage count of a limited resource", limit_hash_usage_function, LIMIT_HASH_USAGE_USAGE);
SWITCH_ADD_API(commands_api_interface, "db", "db get/set", db_api_function, "[insert|delete|select]/<realm>/<key>/<value>");
switch_console_set_complete("add db insert");
switch_console_set_complete("add db delete");
More information about the Freeswitch-svn
mailing list