[commit] r8984 - in freeswitch/trunk/src: . include mod/applications/mod_commands
Author: brian Date: Thu Jul 10 10:41:31 2008 New Revision: 8984 Modified: freeswitch/trunk/src/include/switch_loadable_module.h freeswitch/trunk/src/mod/applications/mod_commands/mod_commands.c freeswitch/trunk/src/switch_loadable_module.c Log: add module_exists api call Modified: freeswitch/trunk/src/include/switch_loadable_module.h ============================================================================== --- freeswitch/trunk/src/include/switch_loadable_module.h (original) +++ freeswitch/trunk/src/include/switch_loadable_module.h Thu Jul 10 10:41:31 2008 @@ -242,6 +242,13 @@ SWITCH_DECLARE(switch_status_t) switch_loadable_module_load_module(char *dir, char *fname, switch_bool_t runtime, const char **err); /*! + \brief Check if a module is loaded + \param mod the module name + \return the status +*/ +SWITCH_DECLARE(switch_status_t) switch_loadable_module_exists(const char *mod); + +/*! \brief Unoad a module \param dir the directory where the module resides \param fname the file name of the module Modified: freeswitch/trunk/src/mod/applications/mod_commands/mod_commands.c ============================================================================== --- freeswitch/trunk/src/mod/applications/mod_commands/mod_commands.c (original) +++ freeswitch/trunk/src/mod/applications/mod_commands/mod_commands.c Thu Jul 10 10:41:31 2008 @@ -196,6 +196,21 @@ } +SWITCH_STANDARD_API(module_exists_function) +{ + if (!switch_strlen_zero(cmd)) { + if(switch_loadable_module_exists(cmd) == SWITCH_STATUS_SUCCESS) { + stream->write_function(stream, "true"); + } else { + stream->write_function(stream, "false"); + + } + } + + return SWITCH_STATUS_SUCCESS; +} + + SWITCH_STANDARD_API(url_encode_function) { char *reply = ""; @@ -2431,6 +2446,7 @@ SWITCH_ADD_API(commands_api_interface, "user_data", "find user data", user_data_function, "<user>@<domain> [var|param] <name>"); SWITCH_ADD_API(commands_api_interface, "url_encode", "url encode a string", url_encode_function, "<string>"); SWITCH_ADD_API(commands_api_interface, "url_decode", "url decode a string", url_decode_function, "<string>"); + SWITCH_ADD_API(commands_api_interface, "module_exists", "check if module exists", module_exists_function, "<module>"); /* indicate that the module should continue to be loaded */ return SWITCH_STATUS_NOUNLOAD; Modified: freeswitch/trunk/src/switch_loadable_module.c ============================================================================== --- freeswitch/trunk/src/switch_loadable_module.c (original) +++ freeswitch/trunk/src/switch_loadable_module.c Thu Jul 10 10:41:31 2008 @@ -830,7 +830,24 @@ } +SWITCH_DECLARE(switch_status_t) switch_loadable_module_exists(const char *mod) +{ + switch_status_t status; + + if (switch_strlen_zero(mod)) { + return SWITCH_STATUS_FALSE; + } + switch_mutex_lock(loadable_modules.mutex); + if (switch_core_hash_find(loadable_modules.module_hash, mod)) { + status = SWITCH_STATUS_SUCCESS; + } else { + status = SWITCH_STATUS_FALSE; + } + switch_mutex_unlock(loadable_modules.mutex); + + return status; +} SWITCH_DECLARE(switch_status_t) switch_loadable_module_unload_module(char *dir, char *fname, const char **err) {
participants (1)
-
Freeswitch SVN