FS-6402 part 2
This commit is contained in:
parent
5110ee8008
commit
7151d6acea
|
@ -5530,7 +5530,7 @@ SWITCH_MODULE_SHUTDOWN_FUNCTION(mod_freetdm_shutdown)
|
|||
void *val;
|
||||
|
||||
/* destroy ss7 configs */
|
||||
for (hi = switch_core_hash_first( globals.ss7_configs); hi; hi = switch_core_hash_next(&hi)) {
|
||||
for (hi = switch_core_hash_first(globals.ss7_configs); hi; hi = switch_core_hash_next(&hi)) {
|
||||
switch_core_hash_this(hi, &var, NULL, &val);
|
||||
ftdm_conf_node_destroy(val);
|
||||
}
|
||||
|
|
|
@ -1459,7 +1459,15 @@ SWITCH_DECLARE(void *) switch_core_hash_find_rdlock(_In_ switch_hash_t *hash, _I
|
|||
\param hash the hashtable to use
|
||||
\return The element, or NULL if it wasn't found
|
||||
*/
|
||||
SWITCH_DECLARE(switch_hash_index_t *) switch_core_hash_first(_In_ switch_hash_t *hash);
|
||||
SWITCH_DECLARE(switch_hash_index_t *) switch_core_hash_first_iter(_In_ switch_hash_t *hash, switch_hash_index_t *hi);
|
||||
#define switch_core_hash_first(_h) switch_core_hash_first_iter(_h, NULL)
|
||||
|
||||
/*!
|
||||
\brief tells if a hash is empty
|
||||
\param hash the hashtable
|
||||
\return TRUE or FALSE depending on if the hash is empty
|
||||
*/
|
||||
SWITCH_DECLARE(switch_bool_t) switch_core_hash_empty(switch_hash_t *hash);
|
||||
|
||||
/*!
|
||||
\brief Gets the next element of a hashtable
|
||||
|
|
|
@ -190,7 +190,8 @@ switch_hashtable_count(switch_hashtable_t *h);
|
|||
SWITCH_DECLARE(void)
|
||||
switch_hashtable_destroy(switch_hashtable_t **h);
|
||||
|
||||
SWITCH_DECLARE(switch_hashtable_iterator_t*) switch_hashtable_first(switch_hashtable_t *h);
|
||||
SWITCH_DECLARE(switch_hashtable_iterator_t*) switch_hashtable_first_iter(switch_hashtable_t *h, switch_hashtable_iterator_t *it);
|
||||
#define switch_hashtable_first(_h) switch_hashtable_first_iter(_h, NULL)
|
||||
SWITCH_DECLARE(switch_hashtable_iterator_t*) switch_hashtable_next(switch_hashtable_iterator_t **iP);
|
||||
SWITCH_DECLARE(void) switch_hashtable_this(switch_hashtable_iterator_t *i, const void **key, switch_ssize_t *klen, void **val);
|
||||
|
||||
|
|
|
@ -116,7 +116,7 @@ static switch_status_t do_config(switch_bool_t reload)
|
|||
{
|
||||
/* Load up blacklists */
|
||||
switch_xml_t xml, cfg, lists, list;
|
||||
switch_hash_index_t *hi;
|
||||
switch_hash_index_t *hi = NULL;
|
||||
|
||||
if (!(xml = switch_xml_open_cfg("mod_blacklist.conf", &cfg, NULL))) {
|
||||
switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "Couldn't load configuration section\n");
|
||||
|
@ -126,7 +126,7 @@ static switch_status_t do_config(switch_bool_t reload)
|
|||
switch_mutex_lock(globals.lists_mutex);
|
||||
|
||||
/* Destroy any active lists */
|
||||
while ((hi = switch_core_hash_first( globals.lists))) {
|
||||
while ((hi = switch_core_hash_first_iter( globals.lists, hi))) {
|
||||
const void *key;
|
||||
void *val;
|
||||
switch_core_hash_this(hi, &key, NULL, &val);
|
||||
|
@ -282,7 +282,7 @@ SWITCH_STANDARD_API(blacklist_api_function)
|
|||
switch_mutex_lock(globals.lists_mutex);
|
||||
if (switch_file_open(&fd, filename, SWITCH_FOPEN_WRITE | SWITCH_FOPEN_TRUNCATE | SWITCH_FOPEN_CREATE, SWITCH_FPROT_OS_DEFAULT, globals.pool)
|
||||
== SWITCH_STATUS_SUCCESS) {
|
||||
for (hi = switch_core_hash_first( bl->list); hi; hi = switch_core_hash_next(&hi)) {
|
||||
for (hi = switch_core_hash_first(bl->list); hi; hi = switch_core_hash_next(&hi)) {
|
||||
switch_core_hash_this(hi, &var, NULL, &val);
|
||||
switch_file_printf(fd, "%s\n", (char *)var);
|
||||
switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG, "adding %s to the dump file\n", (char *)var);
|
||||
|
|
|
@ -3198,7 +3198,7 @@ SWITCH_STANDARD_API(cc_config_api_function)
|
|||
switch_hash_index_t *hi;
|
||||
stream->write_function(stream, "%s", "name|strategy|moh_sound|time_base_score|tier_rules_apply|tier_rule_wait_second|tier_rule_wait_multiply_level|tier_rule_no_agent_no_wait|discard_abandoned_after|abandoned_resume_allowed|max_wait_time|max_wait_time_with_no_agent|max_wait_time_with_no_agent_time_reached|record_template\n");
|
||||
switch_mutex_lock(globals.mutex);
|
||||
for (hi = switch_core_hash_first( globals.queue_hash); hi; hi = switch_core_hash_next(&hi)) {
|
||||
for (hi = switch_core_hash_first(globals.queue_hash); hi; hi = switch_core_hash_next(&hi)) {
|
||||
void *val = NULL;
|
||||
const void *key;
|
||||
switch_ssize_t keylen;
|
||||
|
@ -3251,7 +3251,7 @@ SWITCH_STANDARD_API(cc_config_api_function)
|
|||
switch_hash_index_t *hi;
|
||||
int queue_count = 0;
|
||||
switch_mutex_lock(globals.mutex);
|
||||
for (hi = switch_core_hash_first( globals.queue_hash); hi; hi = switch_core_hash_next(&hi)) {
|
||||
for (hi = switch_core_hash_first(globals.queue_hash); hi; hi = switch_core_hash_next(&hi)) {
|
||||
queue_count++;
|
||||
}
|
||||
switch_mutex_unlock(globals.mutex);
|
||||
|
@ -3373,7 +3373,7 @@ SWITCH_MODULE_LOAD_FUNCTION(mod_callcenter_load)
|
|||
Macro expands to: switch_status_t mod_callcenter_shutdown() */
|
||||
SWITCH_MODULE_SHUTDOWN_FUNCTION(mod_callcenter_shutdown)
|
||||
{
|
||||
switch_hash_index_t *hi;
|
||||
switch_hash_index_t *hi = NULL;
|
||||
cc_queue_t *queue;
|
||||
void *val = NULL;
|
||||
const void *key;
|
||||
|
@ -3394,7 +3394,7 @@ SWITCH_MODULE_SHUTDOWN_FUNCTION(mod_callcenter_shutdown)
|
|||
}
|
||||
|
||||
switch_mutex_lock(globals.mutex);
|
||||
while ((hi = switch_core_hash_first( globals.queue_hash))) {
|
||||
while ((hi = switch_core_hash_first_iter( globals.queue_hash, hi))) {
|
||||
switch_core_hash_this(hi, &key, &keylen, &val);
|
||||
queue = (cc_queue_t *) val;
|
||||
|
||||
|
|
|
@ -5291,7 +5291,7 @@ static switch_status_t list_conferences(const char *line, const char *cursor, sw
|
|||
const void *vvar;
|
||||
|
||||
switch_mutex_lock(globals.hash_mutex);
|
||||
for (hi = switch_core_hash_first( globals.conference_hash); hi; hi = switch_core_hash_next(&hi)) {
|
||||
for (hi = switch_core_hash_first(globals.conference_hash); hi; hi = switch_core_hash_next(&hi)) {
|
||||
switch_core_hash_this(hi, &vvar, NULL, &val);
|
||||
switch_console_push_match(&my_matches, (const char *) vvar);
|
||||
}
|
||||
|
@ -5783,7 +5783,7 @@ static switch_status_t conf_api_sub_list(conference_obj_t *conference, switch_st
|
|||
|
||||
if (conference == NULL) {
|
||||
switch_mutex_lock(globals.hash_mutex);
|
||||
for (hi = switch_core_hash_first( globals.conference_hash); hi; hi = switch_core_hash_next(&hi)) {
|
||||
for (hi = switch_core_hash_first(globals.conference_hash); hi; hi = switch_core_hash_next(&hi)) {
|
||||
int fcount = 0;
|
||||
switch_core_hash_this(hi, NULL, NULL, &val);
|
||||
conference = (conference_obj_t *) val;
|
||||
|
@ -6262,7 +6262,7 @@ static switch_status_t conf_api_sub_xml_list(conference_obj_t *conference, switc
|
|||
|
||||
if (conference == NULL) {
|
||||
switch_mutex_lock(globals.hash_mutex);
|
||||
for (hi = switch_core_hash_first( globals.conference_hash); hi; hi = switch_core_hash_next(&hi)) {
|
||||
for (hi = switch_core_hash_first(globals.conference_hash); hi; hi = switch_core_hash_next(&hi)) {
|
||||
switch_core_hash_this(hi, NULL, NULL, &val);
|
||||
conference = (conference_obj_t *) val;
|
||||
|
||||
|
|
|
@ -1070,7 +1070,7 @@ SWITCH_MODULE_SHUTDOWN_FUNCTION(mod_directory_shutdown)
|
|||
|
||||
switch_mutex_lock(globals.mutex);
|
||||
|
||||
while ((hi = switch_core_hash_first( globals.profile_hash))) {
|
||||
while ((hi = switch_core_hash_first(globals.profile_hash))) {
|
||||
switch_core_hash_this(hi, &key, &keylen, &val);
|
||||
profile = (dir_profile_t *) val;
|
||||
|
||||
|
|
|
@ -975,7 +975,7 @@ static int node_idle_consumers(fifo_node_t *node)
|
|||
int total = 0;
|
||||
|
||||
switch_mutex_lock(node->mutex);
|
||||
for (hi = switch_core_hash_first( node->consumer_hash); hi; hi = switch_core_hash_next(&hi)) {
|
||||
for (hi = switch_core_hash_first(node->consumer_hash); hi; hi = switch_core_hash_next(&hi)) {
|
||||
switch_core_hash_this(hi, &var, NULL, &val);
|
||||
session = (switch_core_session_t *) val;
|
||||
channel = switch_core_session_get_channel(session);
|
||||
|
@ -3802,7 +3802,7 @@ static int xml_hash(switch_xml_t xml, switch_hash_t *hash, char *container, char
|
|||
x_tmp = switch_xml_add_child_d(xml, container, cc_off++);
|
||||
switch_assert(x_tmp);
|
||||
|
||||
for (hi = switch_core_hash_first( hash); hi; hi = switch_core_hash_next(&hi)) {
|
||||
for (hi = switch_core_hash_first(hash); hi; hi = switch_core_hash_next(&hi)) {
|
||||
int c_off = 0, d_off = 0;
|
||||
const char *status;
|
||||
const char *ts;
|
||||
|
@ -3987,7 +3987,7 @@ void dump_hash(switch_hash_t *hash, switch_stream_handle_t *stream)
|
|||
const void *var;
|
||||
|
||||
switch_mutex_lock(globals.mutex);
|
||||
for (hi = switch_core_hash_first( hash); hi; hi = switch_core_hash_next(&hi)) {
|
||||
for (hi = switch_core_hash_first(hash); hi; hi = switch_core_hash_next(&hi)) {
|
||||
switch_core_hash_this(hi, &var, NULL, &val);
|
||||
stream->write_function(stream, " %s\n", (char *)var);
|
||||
}
|
||||
|
@ -4002,7 +4002,7 @@ void node_dump(switch_stream_handle_t *stream)
|
|||
fifo_node_t *node;
|
||||
void *val;
|
||||
switch_mutex_lock(globals.mutex);
|
||||
for (hi = switch_core_hash_first( globals.fifo_hash); hi; hi = switch_core_hash_next(&hi)) {
|
||||
for (hi = switch_core_hash_first(globals.fifo_hash); hi; hi = switch_core_hash_next(&hi)) {
|
||||
switch_core_hash_this(hi, NULL, NULL, &val);
|
||||
if ((node = (fifo_node_t *) val)) {
|
||||
stream->write_function(stream, "node: %s\n"
|
||||
|
@ -4100,7 +4100,7 @@ SWITCH_STANDARD_API(fifo_api_function)
|
|||
switch_assert(x_report);
|
||||
|
||||
if (argc < 2) {
|
||||
for (hi = switch_core_hash_first( globals.fifo_hash); hi; hi = switch_core_hash_next(&hi)) {
|
||||
for (hi = switch_core_hash_first(globals.fifo_hash); hi; hi = switch_core_hash_next(&hi)) {
|
||||
switch_core_hash_this(hi, &var, NULL, &val);
|
||||
node = (fifo_node_t *) val;
|
||||
|
||||
|
@ -4137,7 +4137,7 @@ SWITCH_STANDARD_API(fifo_api_function)
|
|||
}
|
||||
} else if (!strcasecmp(argv[0], "count")) {
|
||||
if (argc < 2) {
|
||||
for (hi = switch_core_hash_first( globals.fifo_hash); hi; hi = switch_core_hash_next(&hi)) {
|
||||
for (hi = switch_core_hash_first(globals.fifo_hash); hi; hi = switch_core_hash_next(&hi)) {
|
||||
switch_core_hash_this(hi, &var, NULL, &val);
|
||||
node = (fifo_node_t *) val;
|
||||
switch_mutex_lock(node->update_mutex);
|
||||
|
@ -4158,7 +4158,7 @@ SWITCH_STANDARD_API(fifo_api_function)
|
|||
}
|
||||
} else if (!strcasecmp(argv[0], "has_outbound")) {
|
||||
if (argc < 2) {
|
||||
for (hi = switch_core_hash_first( globals.fifo_hash); hi; hi = switch_core_hash_next(&hi)) {
|
||||
for (hi = switch_core_hash_first(globals.fifo_hash); hi; hi = switch_core_hash_next(&hi)) {
|
||||
switch_core_hash_this(hi, &var, NULL, &val);
|
||||
node = (fifo_node_t *) val;
|
||||
switch_mutex_lock(node->update_mutex);
|
||||
|
@ -4359,7 +4359,7 @@ static switch_status_t load_config(int reload, int del_all)
|
|||
fifo_node_t *node;
|
||||
void *val;
|
||||
switch_mutex_lock(globals.mutex);
|
||||
for (hi = switch_core_hash_first( globals.fifo_hash); hi; hi = switch_core_hash_next(&hi)) {
|
||||
for (hi = switch_core_hash_first(globals.fifo_hash); hi; hi = switch_core_hash_next(&hi)) {
|
||||
switch_core_hash_this(hi, NULL, NULL, &val);
|
||||
if ((node = (fifo_node_t *) val) && node->is_static && node->ready == 1) {
|
||||
node->ready = -1;
|
||||
|
|
|
@ -291,7 +291,7 @@ SWITCH_LIMIT_RELEASE(limit_release_hash)
|
|||
/* clear for uuid */
|
||||
if (realm == NULL && resource == NULL) {
|
||||
/* Loop through the channel's hashtable which contains mapping to all the limit_hash_item_t referenced by that channel */
|
||||
while ((hi = switch_core_hash_first( pvt->hash))) {
|
||||
while ((hi = switch_core_hash_first(pvt->hash))) {
|
||||
void *val = NULL;
|
||||
const void *key;
|
||||
switch_ssize_t keylen;
|
||||
|
@ -391,7 +391,7 @@ SWITCH_LIMIT_STATUS(limit_status_hash)
|
|||
|
||||
switch_thread_rwlock_rdlock(globals.limit_hash_rwlock);
|
||||
|
||||
for (hi = switch_core_hash_first( globals.limit_hash); hi; switch_core_hash_next(hi)) {
|
||||
for (hi = switch_core_hash_first(globals.limit_hash); hi; switch_core_hash_next(hi)) {
|
||||
count++;
|
||||
}
|
||||
|
||||
|
@ -623,7 +623,7 @@ SWITCH_STANDARD_API(hash_dump_function)
|
|||
|
||||
if (mode & 1) {
|
||||
switch_thread_rwlock_rdlock(globals.limit_hash_rwlock);
|
||||
for (hi = switch_core_hash_first( globals.limit_hash); hi; hi = switch_core_hash_next(&hi)) {
|
||||
for (hi = switch_core_hash_first(globals.limit_hash); hi; hi = switch_core_hash_next(&hi)) {
|
||||
void *val = NULL;
|
||||
const void *key;
|
||||
switch_ssize_t keylen;
|
||||
|
@ -639,7 +639,7 @@ SWITCH_STANDARD_API(hash_dump_function)
|
|||
|
||||
if (mode & 2) {
|
||||
switch_thread_rwlock_rdlock(globals.db_hash_rwlock);
|
||||
for (hi = switch_core_hash_first( globals.db_hash); hi; hi = switch_core_hash_next(&hi)) {
|
||||
for (hi = switch_core_hash_first(globals.db_hash); hi; hi = switch_core_hash_next(&hi)) {
|
||||
void *val = NULL;
|
||||
const void *key;
|
||||
switch_ssize_t keylen;
|
||||
|
@ -679,7 +679,7 @@ SWITCH_STANDARD_API(hash_remote_function)
|
|||
stream->write_function(stream, "Remote connections:\nName\t\t\tState\n");
|
||||
|
||||
switch_thread_rwlock_rdlock(globals.remote_hash_rwlock);
|
||||
for (hi = switch_core_hash_first( globals.remote_hash); hi; hi = switch_core_hash_next(&hi)) {
|
||||
for (hi = switch_core_hash_first(globals.remote_hash); hi; hi = switch_core_hash_next(&hi)) {
|
||||
void *val;
|
||||
const void *key;
|
||||
switch_ssize_t keylen;
|
||||
|
@ -780,7 +780,7 @@ void limit_remote_destroy(limit_remote_t **r)
|
|||
switch_thread_rwlock_wrlock((*r)->rwlock);
|
||||
|
||||
/* Free hashtable data */
|
||||
for (hi = switch_core_hash_first( (*r)->index); hi; hi = switch_core_hash_next(&hi)) {
|
||||
for (hi = switch_core_hash_first((*r)->index); hi; hi = switch_core_hash_next(&hi)) {
|
||||
void *val;
|
||||
const void *key;
|
||||
switch_ssize_t keylen;
|
||||
|
@ -803,7 +803,7 @@ static limit_hash_item_t get_remote_usage(const char *key) {
|
|||
switch_hash_index_t *hi;
|
||||
|
||||
switch_thread_rwlock_rdlock(globals.remote_hash_rwlock);
|
||||
for (hi = switch_core_hash_first( globals.remote_hash); hi; hi = switch_core_hash_next(&hi)) {
|
||||
for (hi = switch_core_hash_first(globals.remote_hash); hi; hi = switch_core_hash_next(&hi)) {
|
||||
void *val;
|
||||
const void *hashkey;
|
||||
switch_ssize_t keylen;
|
||||
|
@ -1018,7 +1018,7 @@ SWITCH_MODULE_LOAD_FUNCTION(mod_hash_load)
|
|||
|
||||
SWITCH_MODULE_SHUTDOWN_FUNCTION(mod_hash_shutdown)
|
||||
{
|
||||
switch_hash_index_t *hi;
|
||||
switch_hash_index_t *hi = NULL;
|
||||
switch_bool_t remote_clean = SWITCH_TRUE;
|
||||
|
||||
switch_scheduler_del_task_group("mod_hash");
|
||||
|
@ -1031,7 +1031,7 @@ SWITCH_MODULE_SHUTDOWN_FUNCTION(mod_hash_shutdown)
|
|||
limit_remote_t *item = NULL;
|
||||
|
||||
switch_thread_rwlock_rdlock(globals.remote_hash_rwlock);
|
||||
if ((hi = switch_core_hash_first( globals.remote_hash))) {
|
||||
if ((hi = switch_core_hash_first(globals.remote_hash))) {
|
||||
switch_core_hash_this(hi, &key, &keylen, &val);
|
||||
item = (limit_remote_t *)val;
|
||||
}
|
||||
|
@ -1050,7 +1050,7 @@ SWITCH_MODULE_SHUTDOWN_FUNCTION(mod_hash_shutdown)
|
|||
switch_thread_rwlock_wrlock(globals.limit_hash_rwlock);
|
||||
switch_thread_rwlock_wrlock(globals.db_hash_rwlock);
|
||||
|
||||
while ((hi = switch_core_hash_first( globals.limit_hash))) {
|
||||
while ((hi = switch_core_hash_first_iter( globals.limit_hash, hi))) {
|
||||
void *val = NULL;
|
||||
const void *key;
|
||||
switch_ssize_t keylen;
|
||||
|
@ -1059,7 +1059,7 @@ SWITCH_MODULE_SHUTDOWN_FUNCTION(mod_hash_shutdown)
|
|||
switch_core_hash_delete(globals.limit_hash, key);
|
||||
}
|
||||
|
||||
while ((hi = switch_core_hash_first( globals.db_hash))) {
|
||||
while ((hi = switch_core_hash_first_iter( globals.db_hash, hi))) {
|
||||
void *val = NULL;
|
||||
const void *key;
|
||||
switch_ssize_t keylen;
|
||||
|
|
|
@ -3088,7 +3088,7 @@ SWITCH_MODULE_SHUTDOWN_FUNCTION(mod_httapi_shutdown)
|
|||
void *val;
|
||||
const void *vvar;
|
||||
|
||||
for (hi = switch_core_hash_first( globals.profile_hash); hi; hi = switch_core_hash_next(&hi)) {
|
||||
for (hi = switch_core_hash_first(globals.profile_hash); hi; hi = switch_core_hash_next(&hi)) {
|
||||
switch_core_hash_this(hi, &vvar, NULL, &val);
|
||||
profile = (client_profile_t *) val;
|
||||
switch_event_destroy(&profile->dial_params.app_list);
|
||||
|
|
|
@ -2052,7 +2052,7 @@ SWITCH_STANDARD_API(dialplan_lcr_admin_function)
|
|||
}
|
||||
switch_assert(argv[0]);
|
||||
if (!strcasecmp(argv[0], "show") && !strcasecmp(argv[1], "profiles")) {
|
||||
for (hi = switch_core_hash_first( globals.profile_hash); hi; hi = switch_core_hash_next(&hi)) {
|
||||
for (hi = switch_core_hash_first(globals.profile_hash); hi; hi = switch_core_hash_next(&hi)) {
|
||||
switch_core_hash_this(hi, NULL, NULL, &val);
|
||||
profile = (profile_t *) val;
|
||||
|
||||
|
|
|
@ -172,7 +172,7 @@ SWITCH_LIMIT_RELEASE(limit_release_redis)
|
|||
/* clear for uuid */
|
||||
if (realm == NULL && resource == NULL) {
|
||||
/* Loop through the channel's hashtable which contains mapping to all the limit_redis_item_t referenced by that channel */
|
||||
while ((hi = switch_core_hash_first( pvt->hash))) {
|
||||
while ((hi = switch_core_hash_first(pvt->hash))) {
|
||||
void *p_val = NULL;
|
||||
const void *p_key;
|
||||
char *p_uuid_key = NULL;
|
||||
|
|
|
@ -139,7 +139,7 @@ SWITCH_STANDARD_API(dump_hash)
|
|||
|
||||
switch_thread_rwlock_rdlock(globals.spy_hash_lock);
|
||||
|
||||
for (hi = switch_core_hash_first( globals.spy_hash); hi; hi = switch_core_hash_next(&hi)) {
|
||||
for (hi = switch_core_hash_first(globals.spy_hash); hi; hi = switch_core_hash_next(&hi)) {
|
||||
switch_core_hash_this(hi, &key, NULL, &val);
|
||||
spy = (spy_t *) val;
|
||||
|
||||
|
|
|
@ -170,7 +170,7 @@ static void do_unload(void) {
|
|||
|
||||
switch_mutex_lock(MUTEX);
|
||||
|
||||
while ((hi = switch_core_hash_first( globals.translate_profiles))) {
|
||||
while ((hi = switch_core_hash_first_iter( globals.translate_profiles, hi))) {
|
||||
void *val = NULL;
|
||||
const void *key;
|
||||
switch_ssize_t keylen;
|
||||
|
|
|
@ -105,7 +105,7 @@ static void check_timeouts(void)
|
|||
valet_lot_t *lot;
|
||||
switch_console_callback_match_t *matches = NULL;
|
||||
switch_console_callback_match_node_t *m;
|
||||
switch_hash_index_t *i_hi;
|
||||
switch_hash_index_t *i_hi = NULL;
|
||||
const void *i_var;
|
||||
void *i_val;
|
||||
char *i_ext;
|
||||
|
@ -120,7 +120,7 @@ static void check_timeouts(void)
|
|||
}
|
||||
|
||||
globals.last_timeout_check = now;
|
||||
for (hi = switch_core_hash_first( globals.hash); hi; hi = switch_core_hash_next(&hi)) {
|
||||
for (hi = switch_core_hash_first(globals.hash); hi; hi = switch_core_hash_next(&hi)) {
|
||||
switch_core_hash_this(hi, &var, NULL, &val);
|
||||
switch_console_push_match(&matches, (const char *) var);
|
||||
}
|
||||
|
@ -135,7 +135,7 @@ static void check_timeouts(void)
|
|||
|
||||
top:
|
||||
|
||||
for (i_hi = switch_core_hash_first( lot->hash); i_hi; i_hi = switch_core_hash_next(&i_hi)) {
|
||||
for (i_hi = switch_core_hash_first_iter( lot->hash, i_hi); i_hi; i_hi = switch_core_hash_next(&i_hi)) {
|
||||
switch_core_hash_this(i_hi, &i_var, NULL, &i_val);
|
||||
i_ext = (char *) i_var;
|
||||
token = (valet_token_t *) i_val;
|
||||
|
@ -146,6 +146,7 @@ static void check_timeouts(void)
|
|||
goto top;
|
||||
}
|
||||
}
|
||||
switch_safe_free(i_hi);
|
||||
|
||||
switch_mutex_unlock(lot->mutex);
|
||||
}
|
||||
|
@ -167,7 +168,7 @@ static int find_longest(valet_lot_t *lot, int min, int max)
|
|||
time_t now = switch_epoch_time_now(NULL);
|
||||
|
||||
switch_mutex_lock(lot->mutex);
|
||||
for (i_hi = switch_core_hash_first( lot->hash); i_hi; i_hi = switch_core_hash_next(&i_hi)) {
|
||||
for (i_hi = switch_core_hash_first(lot->hash); i_hi; i_hi = switch_core_hash_next(&i_hi)) {
|
||||
int i;
|
||||
switch_core_hash_this(i_hi, &i_var, NULL, &i_val);
|
||||
token = (valet_token_t *) i_val;
|
||||
|
@ -257,7 +258,7 @@ static int valet_lot_count(valet_lot_t *lot)
|
|||
now = switch_epoch_time_now(NULL);
|
||||
|
||||
switch_mutex_lock(lot->mutex);
|
||||
for (i_hi = switch_core_hash_first( lot->hash); i_hi; i_hi = switch_core_hash_next(&i_hi)) {
|
||||
for (i_hi = switch_core_hash_first(lot->hash); i_hi; i_hi = switch_core_hash_next(&i_hi)) {
|
||||
switch_core_hash_this(i_hi, &i_var, NULL, &i_val);
|
||||
token = (valet_token_t *) i_val;
|
||||
if (token->timeout > 0 && (token->timeout < now || token->timeout == 1)) {
|
||||
|
@ -738,7 +739,7 @@ SWITCH_STANDARD_API(valet_info_function)
|
|||
stream->write_function(stream, "<lots>\n");
|
||||
|
||||
switch_mutex_lock(globals.mutex);
|
||||
for (hi = switch_core_hash_first( globals.hash); hi; hi = switch_core_hash_next(&hi)) {
|
||||
for (hi = switch_core_hash_first(globals.hash); hi; hi = switch_core_hash_next(&hi)) {
|
||||
switch_hash_index_t *i_hi;
|
||||
const void *i_var;
|
||||
void *i_val;
|
||||
|
@ -754,7 +755,7 @@ SWITCH_STANDARD_API(valet_info_function)
|
|||
stream->write_function(stream, " <lot name=\"%s\">\n", name);
|
||||
|
||||
switch_mutex_lock(lot->mutex);
|
||||
for (i_hi = switch_core_hash_first( lot->hash); i_hi; i_hi = switch_core_hash_next(&i_hi)) {
|
||||
for (i_hi = switch_core_hash_first(lot->hash); i_hi; i_hi = switch_core_hash_next(&i_hi)) {
|
||||
valet_token_t *token;
|
||||
|
||||
switch_core_hash_this(i_hi, &i_var, NULL, &i_val);
|
||||
|
@ -848,7 +849,7 @@ static void pres_event_handler(switch_event_t *event)
|
|||
const char *nvar;
|
||||
|
||||
switch_mutex_lock(globals.mutex);
|
||||
for (hi = switch_core_hash_first( globals.hash); hi; hi = switch_core_hash_next(&hi)) {
|
||||
for (hi = switch_core_hash_first(globals.hash); hi; hi = switch_core_hash_next(&hi)) {
|
||||
switch_core_hash_this(hi, &var, NULL, &val);
|
||||
nvar = (const char *) var;
|
||||
|
||||
|
|
|
@ -3866,7 +3866,7 @@ SWITCH_STANDARD_API(boxcount_api_function)
|
|||
/* Kept for backwards-compatibility */
|
||||
switch_hash_index_t *hi;
|
||||
switch_mutex_lock(globals.mutex);
|
||||
if ((hi = switch_core_hash_first( globals.profile_hash))) {
|
||||
if ((hi = switch_core_hash_first(globals.profile_hash))) {
|
||||
void *val;
|
||||
switch_core_hash_this(hi, NULL, NULL, &val);
|
||||
profile = (vm_profile_t *) val;
|
||||
|
@ -4020,7 +4020,7 @@ static void actual_message_query_handler(switch_event_t *event)
|
|||
"Cound not find a profile for domain: [%s] Returning 0 messages\nWhen message-query-exact-match is enabled you must have a dedicated vm profile per distinct domain name you wish to use.\n", domain);
|
||||
}
|
||||
} else {
|
||||
for (hi = switch_core_hash_first( globals.profile_hash); hi; hi = switch_core_hash_next(&hi)) {
|
||||
for (hi = switch_core_hash_first(globals.profile_hash); hi; hi = switch_core_hash_next(&hi)) {
|
||||
switch_core_hash_this(hi, NULL, NULL, &val);
|
||||
profile = (vm_profile_t *) val;
|
||||
parse_profile();
|
||||
|
@ -4029,6 +4029,7 @@ static void actual_message_query_handler(switch_event_t *event)
|
|||
break;
|
||||
}
|
||||
}
|
||||
switch_safe_free(hi);
|
||||
}
|
||||
|
||||
switch_safe_free(dup);
|
||||
|
@ -4923,7 +4924,7 @@ SWITCH_STANDARD_API(voicemail_api_function)
|
|||
} else if (!strcasecmp(argv[0], "status")) {
|
||||
stream->write_function(stream, "============================\n");
|
||||
switch_mutex_lock(globals.mutex);
|
||||
for (hi = switch_core_hash_first( globals.profile_hash); hi; hi = switch_core_hash_next(&hi)) {
|
||||
for (hi = switch_core_hash_first(globals.profile_hash); hi; hi = switch_core_hash_next(&hi)) {
|
||||
switch_core_hash_this(hi, NULL, NULL, &val);
|
||||
profile = (vm_profile_t *) val;
|
||||
stream->write_function(stream, "Profile: %s\n", profile->name);
|
||||
|
@ -4958,7 +4959,7 @@ SWITCH_STANDARD_API(voicemail_api_function)
|
|||
void *value;
|
||||
|
||||
switch_mutex_lock(globals.mutex);
|
||||
for (index = switch_core_hash_first( globals.profile_hash); index; index = switch_core_hash_next(&index)) {
|
||||
for (index = switch_core_hash_first(globals.profile_hash); index; index = switch_core_hash_next(&index)) {
|
||||
switch_core_hash_this(index, NULL, NULL, &value);
|
||||
profile = (vm_profile_t *) value;
|
||||
if (profile) {
|
||||
|
@ -4966,6 +4967,7 @@ SWITCH_STANDARD_API(voicemail_api_function)
|
|||
break;
|
||||
}
|
||||
}
|
||||
switch_safe_free(index);
|
||||
switch_mutex_unlock(globals.mutex);
|
||||
}
|
||||
|
||||
|
@ -6237,7 +6239,7 @@ SWITCH_MODULE_LOAD_FUNCTION(mod_voicemail_load)
|
|||
|
||||
SWITCH_MODULE_SHUTDOWN_FUNCTION(mod_voicemail_shutdown)
|
||||
{
|
||||
switch_hash_index_t *hi;
|
||||
switch_hash_index_t *hi = NULL;
|
||||
vm_profile_t *profile;
|
||||
void *val = NULL;
|
||||
const void *key;
|
||||
|
@ -6261,7 +6263,7 @@ SWITCH_MODULE_SHUTDOWN_FUNCTION(mod_voicemail_shutdown)
|
|||
}
|
||||
|
||||
switch_mutex_lock(globals.mutex);
|
||||
while ((hi = switch_core_hash_first( globals.profile_hash))) {
|
||||
while ((hi = switch_core_hash_first_iter( globals.profile_hash, hi))) {
|
||||
switch_core_hash_this(hi, &key, &keylen, &val);
|
||||
profile = (vm_profile_t *) val;
|
||||
|
||||
|
|
|
@ -1158,7 +1158,7 @@ static switch_status_t synth_channel_set_params(speech_channel_t *schannel, mrcp
|
|||
{
|
||||
/* loop through each param and add to synth header or vendor-specific-params */
|
||||
switch_hash_index_t *hi = NULL;
|
||||
for (hi = switch_core_hash_first( schannel->params); hi; hi = switch_core_hash_next(&hi)) {
|
||||
for (hi = switch_core_hash_first(schannel->params); hi; hi = switch_core_hash_next(&hi)) {
|
||||
char *param_name = NULL, *param_val = NULL;
|
||||
const void *key;
|
||||
void *val;
|
||||
|
@ -1633,7 +1633,7 @@ static switch_status_t synth_speech_open(switch_speech_handle_t *sh, const char
|
|||
}
|
||||
|
||||
/* Set default TTS params */
|
||||
for (hi = switch_core_hash_first( profile->default_synth_params); hi; hi = switch_core_hash_next(&hi)) {
|
||||
for (hi = switch_core_hash_first(profile->default_synth_params); hi; hi = switch_core_hash_next(&hi)) {
|
||||
char *param_name = NULL, *param_val = NULL;
|
||||
const void *key;
|
||||
void *val;
|
||||
|
@ -2195,7 +2195,7 @@ static switch_status_t recog_channel_start(speech_channel_t *schannel)
|
|||
r->timers_started = zstr(start_input_timers) || strcasecmp(start_input_timers, "false");
|
||||
|
||||
/* count enabled grammars */
|
||||
for (egk = switch_core_hash_first( r->enabled_grammars); egk; egk = switch_core_hash_next(&egk)) {
|
||||
for (egk = switch_core_hash_first(r->enabled_grammars); egk; egk = switch_core_hash_next(&egk)) {
|
||||
// NOTE: This postponed type check is necessary to allow a non-URI-list grammar to execute alone
|
||||
if (grammar_uri_count == 1 && grammar->type != GRAMMAR_TYPE_URI)
|
||||
goto no_grammar_alone;
|
||||
|
@ -2205,6 +2205,7 @@ static switch_status_t recog_channel_start(speech_channel_t *schannel)
|
|||
no_grammar_alone:
|
||||
switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "(%s) Grammar '%s' can only be used alone (not a URI list)\n", schannel->name, key);
|
||||
status = SWITCH_STATUS_FALSE;
|
||||
switch_safe_free(egk);
|
||||
goto done;
|
||||
}
|
||||
len = strlen(grammar->data);
|
||||
|
@ -2227,7 +2228,7 @@ static switch_status_t recog_channel_start(speech_channel_t *schannel)
|
|||
/* get the enabled grammars list */
|
||||
grammar_uri_list = switch_core_alloc(schannel->memory_pool, grammar_uri_list_len + 1);
|
||||
grammar_uri_list_len = 0;
|
||||
for (egk = switch_core_hash_first( r->enabled_grammars); egk; egk = switch_core_hash_next(&egk)) {
|
||||
for (egk = switch_core_hash_first(r->enabled_grammars); egk; egk = switch_core_hash_next(&egk)) {
|
||||
switch_core_hash_this(egk, (void *) &key, NULL, (void *) &grammar);
|
||||
len = strlen(grammar->data);
|
||||
if (!len)
|
||||
|
@ -2810,7 +2811,7 @@ static switch_status_t recog_channel_set_params(speech_channel_t *schannel, mrcp
|
|||
{
|
||||
/* loop through each param and add to recog header or vendor-specific-params */
|
||||
switch_hash_index_t *hi = NULL;
|
||||
for (hi = switch_core_hash_first( schannel->params); hi; hi = switch_core_hash_next(&hi)) {
|
||||
for (hi = switch_core_hash_first(schannel->params); hi; hi = switch_core_hash_next(&hi)) {
|
||||
char *param_name = NULL, *param_val = NULL;
|
||||
const void *key;
|
||||
void *val;
|
||||
|
@ -3132,7 +3133,7 @@ static switch_status_t recog_asr_open(switch_asr_handle_t *ah, const char *codec
|
|||
}
|
||||
|
||||
/* Set default ASR params */
|
||||
for (hi = switch_core_hash_first( profile->default_recog_params); hi; hi = switch_core_hash_next(&hi)) {
|
||||
for (hi = switch_core_hash_first(profile->default_recog_params); hi; hi = switch_core_hash_next(&hi)) {
|
||||
char *param_name = NULL, *param_val = NULL;
|
||||
const void *key;
|
||||
void *val;
|
||||
|
|
|
@ -930,7 +930,7 @@ SWITCH_STANDARD_API(sangoma_function)
|
|||
#define STATS_FORMAT "%-10.10s %-10.10s %-10.10s %-10.10s %-10.10s %-10.10s %-10.10s %-10.10s %-10.10s %-10.10s %-15.15s %-15.15s\n"
|
||||
stream->write_function(stream, STATS_FORMAT,
|
||||
"Session", "Codec", "Enc", "Dec", "Enc Tx", "Enc Rx", "Dec Tx", "Dec Rx", "Enc Lost", "Dec Lost", "Enc AvgRxMs", "Dec AvgRxMs");
|
||||
for (hi = switch_core_hash_first( g_sessions_hash); hi; hi = switch_core_hash_next(&hi)) {
|
||||
for (hi = switch_core_hash_first(g_sessions_hash); hi; hi = switch_core_hash_next(&hi)) {
|
||||
struct sangoma_transcoding_session *sess;
|
||||
char sessid_str[25];
|
||||
char encoder_tx_str[25];
|
||||
|
|
|
@ -569,7 +569,7 @@ static void pres_event_handler(switch_event_t *event)
|
|||
switch_mprintf("select sub_from, sub_to,'%q','%q','%q','%q' from jabber_subscriptions where sub_to = '%q%q'", type, rpid, status, proto, pstr,
|
||||
from);
|
||||
|
||||
for (hi = switch_core_hash_first( globals.profile_hash); hi; hi = switch_core_hash_next(&hi)) {
|
||||
for (hi = switch_core_hash_first(globals.profile_hash); hi; hi = switch_core_hash_next(&hi)) {
|
||||
switch_core_hash_this(hi, NULL, NULL, &val);
|
||||
profile = (mdl_profile_t *) val;
|
||||
|
||||
|
@ -701,7 +701,7 @@ static void roster_event_handler(switch_event_t *event)
|
|||
sql = switch_mprintf("select *,'%q' from jabber_subscriptions", status ? status : "");
|
||||
}
|
||||
|
||||
for (hi = switch_core_hash_first( globals.profile_hash); hi; hi = switch_core_hash_next(&hi)) {
|
||||
for (hi = switch_core_hash_first(globals.profile_hash); hi; hi = switch_core_hash_next(&hi)) {
|
||||
switch_core_hash_this(hi, NULL, NULL, &val);
|
||||
profile = (mdl_profile_t *) val;
|
||||
|
||||
|
@ -738,7 +738,7 @@ static void ipchanged_event_handler(switch_event_t *event)
|
|||
mdl_profile_t *profile;
|
||||
switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_INFO, "IP change detected [%s]->[%s]\n", old_ip4, new_ip4);
|
||||
if (globals.profile_hash) {
|
||||
for (hi = switch_core_hash_first( globals.profile_hash); hi; hi = switch_core_hash_next(&hi)) {
|
||||
for (hi = switch_core_hash_first(globals.profile_hash); hi; hi = switch_core_hash_next(&hi)) {
|
||||
switch_core_hash_this(hi, NULL, NULL, &val);
|
||||
profile = (mdl_profile_t *) val;
|
||||
if (old_ip4 && profile->extip && !strcmp(profile->extip, old_ip4)) {
|
||||
|
@ -799,7 +799,7 @@ static void sign_off(void)
|
|||
sql = switch_mprintf("select * from jabber_subscriptions");
|
||||
|
||||
|
||||
for (hi = switch_core_hash_first( globals.profile_hash); hi; hi = switch_core_hash_next(&hi)) {
|
||||
for (hi = switch_core_hash_first(globals.profile_hash); hi; hi = switch_core_hash_next(&hi)) {
|
||||
switch_core_hash_this(hi, NULL, NULL, &val);
|
||||
profile = (mdl_profile_t *) val;
|
||||
|
||||
|
@ -2684,7 +2684,7 @@ static switch_status_t list_profiles(const char *line, const char *cursor, switc
|
|||
switch_console_callback_match_t *my_matches = NULL;
|
||||
switch_status_t status = SWITCH_STATUS_FALSE;
|
||||
|
||||
for (hi = switch_core_hash_first( globals.profile_hash); hi; hi = switch_core_hash_next(&hi)) {
|
||||
for (hi = switch_core_hash_first(globals.profile_hash); hi; hi = switch_core_hash_next(&hi)) {
|
||||
switch_core_hash_this(hi, &vvar, NULL, &val);
|
||||
profile = (mdl_profile_t *) val;
|
||||
if (!strncmp("dl_logout", line, 9)) {
|
||||
|
@ -3090,7 +3090,7 @@ SWITCH_STANDARD_API(dingaling)
|
|||
if (argv[0] && !strncasecmp(argv[0], "status", 6)) {
|
||||
stream->write_function(stream, "--DingaLing status--\n");
|
||||
stream->write_function(stream, "login | connected\n");
|
||||
for (hi = switch_core_hash_first( globals.profile_hash); hi; hi = switch_core_hash_next(&hi)) {
|
||||
for (hi = switch_core_hash_first(globals.profile_hash); hi; hi = switch_core_hash_next(&hi)) {
|
||||
switch_core_hash_this(hi, NULL, NULL, &val);
|
||||
profile = (mdl_profile_t *) val;
|
||||
stream->write_function(stream, "%s | ", profile->login);
|
||||
|
@ -3345,7 +3345,7 @@ static switch_status_t soft_reload(void)
|
|||
|
||||
switch_xml_free(xml);
|
||||
|
||||
for (hi = switch_core_hash_first( globals.profile_hash); hi; hi = switch_core_hash_next(&hi)) {
|
||||
for (hi = switch_core_hash_first(globals.profile_hash); hi; hi = switch_core_hash_next(&hi)) {
|
||||
switch_core_hash_this(hi, NULL, NULL, &data);
|
||||
profile = (mdl_profile_t *) data;
|
||||
|
||||
|
@ -3356,7 +3356,7 @@ static switch_status_t soft_reload(void)
|
|||
}
|
||||
}
|
||||
|
||||
for (hi = switch_core_hash_first( name_hash); hi; hi = switch_core_hash_next(&hi)) {
|
||||
for (hi = switch_core_hash_first(name_hash); hi; hi = switch_core_hash_next(&hi)) {
|
||||
switch_core_hash_this(hi, NULL, NULL, &data);
|
||||
|
||||
if ((profile = switch_core_hash_find(globals.profile_hash, (char *) data))) {
|
||||
|
|
|
@ -2491,7 +2491,7 @@ static switch_status_t list_shared_streams(char **argv, int argc, switch_stream_
|
|||
{
|
||||
switch_hash_index_t *hi;
|
||||
int cnt = 0;
|
||||
for (hi = switch_core_hash_first( globals.sh_streams); hi; hi = switch_core_hash_next(&hi)) {
|
||||
for (hi = switch_core_hash_first(globals.sh_streams); hi; hi = switch_core_hash_next(&hi)) {
|
||||
const void *var;
|
||||
void *val;
|
||||
shared_audio_stream_t *s = NULL;
|
||||
|
@ -2509,7 +2509,7 @@ static switch_status_t list_endpoints(char **argv, int argc, switch_stream_handl
|
|||
{
|
||||
switch_hash_index_t *hi;
|
||||
int cnt = 0;
|
||||
for (hi = switch_core_hash_first( globals.endpoints); hi; hi = switch_core_hash_next(&hi)) {
|
||||
for (hi = switch_core_hash_first(globals.endpoints); hi; hi = switch_core_hash_next(&hi)) {
|
||||
const void *var;
|
||||
void *val;
|
||||
audio_endpoint_t *e = NULL;
|
||||
|
|
|
@ -818,7 +818,7 @@ switch_status_t rtmp_session_request(rtmp_profile_t *profile, rtmp_session_t **n
|
|||
|
||||
static void rtmp_garbage_colletor(void)
|
||||
{
|
||||
switch_hash_index_t *hi;
|
||||
switch_hash_index_t *hi = NULL;
|
||||
|
||||
switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG1, "RTMP Garbage Collection\n");
|
||||
|
||||
|
@ -827,7 +827,7 @@ static void rtmp_garbage_colletor(void)
|
|||
|
||||
top:
|
||||
|
||||
for (hi = switch_core_hash_first( rtmp_globals.session_hash); hi; hi = switch_core_hash_next(&hi)) {
|
||||
for (hi = switch_core_hash_first_iter( rtmp_globals.session_hash, hi); hi; hi = switch_core_hash_next(&hi)) {
|
||||
void *val;
|
||||
const void *key;
|
||||
switch_ssize_t keylen;
|
||||
|
@ -842,6 +842,7 @@ static void rtmp_garbage_colletor(void)
|
|||
}
|
||||
}
|
||||
}
|
||||
switch_safe_free(hi);
|
||||
|
||||
switch_thread_rwlock_unlock(rtmp_globals.session_rwlock);
|
||||
}
|
||||
|
@ -868,7 +869,7 @@ switch_status_t rtmp_real_session_destroy(rtmp_session_t **rsession)
|
|||
int sess = 0;
|
||||
|
||||
switch_thread_rwlock_rdlock((*rsession)->session_rwlock);
|
||||
for (hi = switch_core_hash_first( (*rsession)->session_hash); hi; hi = switch_core_hash_next(&hi)) {
|
||||
for (hi = switch_core_hash_first((*rsession)->session_hash); hi; hi = switch_core_hash_next(&hi)) {
|
||||
void *val;
|
||||
const void *key;
|
||||
switch_ssize_t keylen;
|
||||
|
@ -1086,7 +1087,7 @@ switch_status_t rtmp_profile_destroy(rtmp_profile_t **profile) {
|
|||
switch_thread_rwlock_wrlock((*profile)->rwlock);
|
||||
|
||||
/* Kill all sessions */
|
||||
while ((hi = switch_core_hash_first( (*profile)->session_hash))) {
|
||||
while ((hi = switch_core_hash_first((*profile)->session_hash))) {
|
||||
void *val;
|
||||
rtmp_session_t *session;
|
||||
const void *key;
|
||||
|
@ -1633,7 +1634,7 @@ SWITCH_STANDARD_API(rtmp_function)
|
|||
stream->write_function(stream, "\nSessions:\n");
|
||||
stream->write_function(stream, "uuid,address,user,domain,flashVer,state\n");
|
||||
switch_thread_rwlock_rdlock(profile->session_rwlock);
|
||||
for (hi = switch_core_hash_first( profile->session_hash); hi; hi = switch_core_hash_next(&hi)) {
|
||||
for (hi = switch_core_hash_first(profile->session_hash); hi; hi = switch_core_hash_next(&hi)) {
|
||||
void *val;
|
||||
const void *key;
|
||||
switch_ssize_t keylen;
|
||||
|
@ -1655,7 +1656,7 @@ SWITCH_STANDARD_API(rtmp_function)
|
|||
stream->write_function(stream, "user,nickname,uuid\n");
|
||||
|
||||
switch_thread_rwlock_rdlock(profile->reg_rwlock);
|
||||
for (hi = switch_core_hash_first( profile->reg_hash); hi; hi = switch_core_hash_next(&hi)) {
|
||||
for (hi = switch_core_hash_first(profile->reg_hash); hi; hi = switch_core_hash_next(&hi)) {
|
||||
void *val;
|
||||
const void *key;
|
||||
switch_ssize_t keylen;
|
||||
|
@ -1681,7 +1682,7 @@ SWITCH_STANDARD_API(rtmp_function)
|
|||
} else {
|
||||
switch_hash_index_t *hi;
|
||||
switch_thread_rwlock_rdlock(rtmp_globals.profile_rwlock);
|
||||
for (hi = switch_core_hash_first( rtmp_globals.profile_hash); hi; hi = switch_core_hash_next(&hi)) {
|
||||
for (hi = switch_core_hash_first(rtmp_globals.profile_hash); hi; hi = switch_core_hash_next(&hi)) {
|
||||
void *val;
|
||||
const void *key;
|
||||
switch_ssize_t keylen;
|
||||
|
@ -1805,7 +1806,7 @@ static switch_status_t console_complete_hashtable(switch_hash_t *hash, const cha
|
|||
switch_console_callback_match_t *my_matches = NULL;
|
||||
switch_status_t status = SWITCH_STATUS_FALSE;
|
||||
|
||||
for (hi = switch_core_hash_first( hash); hi; hi = switch_core_hash_next(&hi)) {
|
||||
for (hi = switch_core_hash_first(hash); hi; hi = switch_core_hash_next(&hi)) {
|
||||
switch_core_hash_this(hi, &vvar, NULL, &val);
|
||||
switch_console_push_match(&my_matches, (const char *) vvar);
|
||||
}
|
||||
|
@ -1930,10 +1931,10 @@ SWITCH_MODULE_LOAD_FUNCTION(mod_rtmp_load)
|
|||
|
||||
SWITCH_MODULE_SHUTDOWN_FUNCTION(mod_rtmp_shutdown)
|
||||
{
|
||||
switch_hash_index_t *hi;
|
||||
switch_hash_index_t *hi = NULL;
|
||||
|
||||
switch_mutex_lock(rtmp_globals.mutex);
|
||||
while ((hi = switch_core_hash_first( rtmp_globals.profile_hash))) {
|
||||
while ((hi = switch_core_hash_first_iter( rtmp_globals.profile_hash, hi))) {
|
||||
void *val;
|
||||
const void *key;
|
||||
switch_ssize_t keylen;
|
||||
|
|
|
@ -243,7 +243,7 @@ switch_status_t rtmp_check_auth(rtmp_session_t *rsession, const char *user, cons
|
|||
if (disallow_multiple_registration) {
|
||||
switch_hash_index_t *hi;
|
||||
switch_thread_rwlock_rdlock(rsession->profile->session_rwlock);
|
||||
for (hi = switch_core_hash_first( rsession->profile->session_hash); hi; hi = switch_core_hash_next(&hi)) {
|
||||
for (hi = switch_core_hash_first(rsession->profile->session_hash); hi; hi = switch_core_hash_next(&hi)) {
|
||||
void *val;
|
||||
const void *key;
|
||||
switch_ssize_t keylen;
|
||||
|
|
|
@ -197,7 +197,7 @@ skinny_profile_t *skinny_find_profile_by_domain(const char *domain_name)
|
|||
skinny_profile_t *profile = NULL, *tmp_profile;
|
||||
|
||||
switch_mutex_lock(globals.mutex);
|
||||
for (hi = switch_core_hash_first( globals.profile_hash); hi; hi = switch_core_hash_next(&hi)) {
|
||||
for (hi = switch_core_hash_first(globals.profile_hash); hi; hi = switch_core_hash_next(&hi)) {
|
||||
switch_core_hash_this(hi, NULL, NULL, &val);
|
||||
tmp_profile = (skinny_profile_t *) val;
|
||||
|
||||
|
@ -210,6 +210,7 @@ skinny_profile_t *skinny_find_profile_by_domain(const char *domain_name)
|
|||
break;
|
||||
}
|
||||
}
|
||||
switch_safe_free(hi);
|
||||
switch_mutex_unlock(globals.mutex);
|
||||
|
||||
return profile;
|
||||
|
@ -1401,7 +1402,7 @@ static void walk_listeners(skinny_listener_callback_func_t callback, void *pvt)
|
|||
|
||||
/* walk listeners */
|
||||
switch_mutex_lock(globals.mutex);
|
||||
for (hi = switch_core_hash_first( globals.profile_hash); hi; hi = switch_core_hash_next(&hi)) {
|
||||
for (hi = switch_core_hash_first(globals.profile_hash); hi; hi = switch_core_hash_next(&hi)) {
|
||||
switch_core_hash_this(hi, NULL, NULL, &val);
|
||||
profile = (skinny_profile_t *) val;
|
||||
|
||||
|
@ -2441,7 +2442,7 @@ static void skinny_trap_event_handler(switch_event_t *event)
|
|||
|
||||
switch_mutex_lock(globals.mutex);
|
||||
if (globals.profile_hash) {
|
||||
for (hi = switch_core_hash_first( globals.profile_hash); hi; hi = switch_core_hash_next(&hi)) {
|
||||
for (hi = switch_core_hash_first(globals.profile_hash); hi; hi = switch_core_hash_next(&hi)) {
|
||||
switch_core_hash_this(hi, &var, NULL, &val);
|
||||
if ((profile = (skinny_profile_t *) val) && profile->auto_restart) {
|
||||
if (!strcmp(profile->ip, old_ip4)) {
|
||||
|
@ -2477,7 +2478,7 @@ SWITCH_MODULE_LOAD_FUNCTION(mod_skinny_load)
|
|||
load_skinny_config();
|
||||
|
||||
/* at least one profile */
|
||||
if (!switch_core_hash_first( globals.profile_hash)) {
|
||||
if (switch_core_hash_empty( globals.profile_hash)) {
|
||||
switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "No profile found!\n");
|
||||
return SWITCH_STATUS_TERM;
|
||||
}
|
||||
|
@ -2540,7 +2541,7 @@ SWITCH_MODULE_LOAD_FUNCTION(mod_skinny_load)
|
|||
|
||||
/* launch listeners */
|
||||
switch_mutex_lock(globals.mutex);
|
||||
for (hi = switch_core_hash_first( globals.profile_hash); hi; hi = switch_core_hash_next(&hi)) {
|
||||
for (hi = switch_core_hash_first(globals.profile_hash); hi; hi = switch_core_hash_next(&hi)) {
|
||||
void *val;
|
||||
skinny_profile_t *profile;
|
||||
|
||||
|
@ -2587,7 +2588,7 @@ SWITCH_MODULE_SHUTDOWN_FUNCTION(mod_skinny_shutdown)
|
|||
|
||||
/* close sockets */
|
||||
switch_mutex_lock(globals.mutex);
|
||||
for (hi = switch_core_hash_first( globals.profile_hash); hi; hi = switch_core_hash_next(&hi)) {
|
||||
for (hi = switch_core_hash_first(globals.profile_hash); hi; hi = switch_core_hash_next(&hi)) {
|
||||
skinny_profile_t *profile;
|
||||
switch_core_hash_this(hi, NULL, NULL, &val);
|
||||
profile = (skinny_profile_t *) val;
|
||||
|
|
|
@ -49,7 +49,7 @@ static switch_status_t skinny_api_list_profiles(const char *line, const char *cu
|
|||
|
||||
/* walk profiles */
|
||||
switch_mutex_lock(globals.mutex);
|
||||
for (hi = switch_core_hash_first( globals.profile_hash); hi; hi = switch_core_hash_next(&hi)) {
|
||||
for (hi = switch_core_hash_first(globals.profile_hash); hi; hi = switch_core_hash_next(&hi)) {
|
||||
switch_core_hash_this(hi, NULL, NULL, &val);
|
||||
profile = (skinny_profile_t *) val;
|
||||
|
||||
|
|
|
@ -2474,7 +2474,7 @@ static switch_status_t cmd_status(char **argv, int argc, switch_stream_handle_t
|
|||
stream->write_function(stream, "%25s\t%32s\t%s\t%s\t%s\n", "Profile::Gateway-Name", " Data ", "State", "IB Calls(F/T)", "OB Calls(F/T)");
|
||||
stream->write_function(stream, "%s\n", line);
|
||||
switch_mutex_lock(mod_sofia_globals.hash_mutex);
|
||||
for (hi = switch_core_hash_first( mod_sofia_globals.profile_hash); hi; hi = switch_core_hash_next(&hi)) {
|
||||
for (hi = switch_core_hash_first(mod_sofia_globals.profile_hash); hi; hi = switch_core_hash_next(&hi)) {
|
||||
switch_core_hash_this(hi, &vvar, NULL, &val);
|
||||
profile = (sofia_profile_t *) val;
|
||||
if (sofia_test_pflag(profile, PFLAG_RUNNING)) {
|
||||
|
@ -2707,7 +2707,7 @@ static switch_status_t cmd_status(char **argv, int argc, switch_stream_handle_t
|
|||
stream->write_function(stream, "%25s\t%s\t %40s\t%s\n", "Name", " Type", "Data", "State");
|
||||
stream->write_function(stream, "%s\n", line);
|
||||
switch_mutex_lock(mod_sofia_globals.hash_mutex);
|
||||
for (hi = switch_core_hash_first( mod_sofia_globals.profile_hash); hi; hi = switch_core_hash_next(&hi)) {
|
||||
for (hi = switch_core_hash_first(mod_sofia_globals.profile_hash); hi; hi = switch_core_hash_next(&hi)) {
|
||||
switch_core_hash_this(hi, &vvar, NULL, &val);
|
||||
profile = (sofia_profile_t *) val;
|
||||
if (sofia_test_pflag(profile, PFLAG_RUNNING)) {
|
||||
|
@ -2819,7 +2819,7 @@ static switch_status_t cmd_xml_status(char **argv, int argc, switch_stream_handl
|
|||
stream->write_function(stream, "<gateways>\n", header);
|
||||
|
||||
switch_mutex_lock(mod_sofia_globals.hash_mutex);
|
||||
for (hi = switch_core_hash_first( mod_sofia_globals.profile_hash); hi; hi = switch_core_hash_next(&hi)) {
|
||||
for (hi = switch_core_hash_first(mod_sofia_globals.profile_hash); hi; hi = switch_core_hash_next(&hi)) {
|
||||
switch_core_hash_this(hi, &vvar, NULL, &val);
|
||||
profile = (sofia_profile_t *) val;
|
||||
if (sofia_test_pflag(profile, PFLAG_RUNNING)) {
|
||||
|
@ -2991,7 +2991,7 @@ static switch_status_t cmd_xml_status(char **argv, int argc, switch_stream_handl
|
|||
stream->write_function(stream, "%s\n", header);
|
||||
stream->write_function(stream, "<profiles>\n");
|
||||
switch_mutex_lock(mod_sofia_globals.hash_mutex);
|
||||
for (hi = switch_core_hash_first( mod_sofia_globals.profile_hash); hi; hi = switch_core_hash_next(&hi)) {
|
||||
for (hi = switch_core_hash_first(mod_sofia_globals.profile_hash); hi; hi = switch_core_hash_next(&hi)) {
|
||||
switch_core_hash_this(hi, &vvar, NULL, &val);
|
||||
profile = (sofia_profile_t *) val;
|
||||
if (sofia_test_pflag(profile, PFLAG_RUNNING)) {
|
||||
|
@ -3654,7 +3654,7 @@ SWITCH_STANDARD_API(sofia_contact_function)
|
|||
const void *var;
|
||||
void *val;
|
||||
|
||||
for (hi = switch_core_hash_first( mod_sofia_globals.profile_hash); hi; hi = switch_core_hash_next(&hi)) {
|
||||
for (hi = switch_core_hash_first(mod_sofia_globals.profile_hash); hi; hi = switch_core_hash_next(&hi)) {
|
||||
switch_core_hash_this(hi, &var, NULL, &val);
|
||||
if ((profile = (sofia_profile_t *) val) && !strcmp((char *)var, profile->name)) {
|
||||
select_from_profile(profile, user, domain, concat, exclude_contact, &mystream, SWITCH_TRUE);
|
||||
|
@ -3839,7 +3839,7 @@ SWITCH_STANDARD_API(sofia_presence_data_function)
|
|||
const void *var;
|
||||
void *val;
|
||||
|
||||
for (hi = switch_core_hash_first( mod_sofia_globals.profile_hash); hi; hi = switch_core_hash_next(&hi)) {
|
||||
for (hi = switch_core_hash_first(mod_sofia_globals.profile_hash); hi; hi = switch_core_hash_next(&hi)) {
|
||||
switch_core_hash_this(hi, &var, NULL, &val);
|
||||
if ((profile = (sofia_profile_t *) val) && !strcmp((char *)var, profile->name)) {
|
||||
get_presence_data(profile, user, domain, search, stream);
|
||||
|
@ -5230,7 +5230,7 @@ static void general_event_handler(switch_event_t *event)
|
|||
|
||||
switch_mutex_lock(mod_sofia_globals.hash_mutex);
|
||||
if (mod_sofia_globals.profile_hash && !zstr(old_ip4) && !zstr(new_ip4)) {
|
||||
for (hi = switch_core_hash_first( mod_sofia_globals.profile_hash); hi; hi = switch_core_hash_next(&hi)) {
|
||||
for (hi = switch_core_hash_first(mod_sofia_globals.profile_hash); hi; hi = switch_core_hash_next(&hi)) {
|
||||
switch_core_hash_this(hi, &var, NULL, &val);
|
||||
|
||||
if ((profile = (sofia_profile_t *) val)) {
|
||||
|
@ -5259,7 +5259,7 @@ static void general_event_handler(switch_event_t *event)
|
|||
|
||||
switch_mutex_lock(mod_sofia_globals.hash_mutex);
|
||||
if (mod_sofia_globals.profile_hash) {
|
||||
for (hi = switch_core_hash_first( mod_sofia_globals.profile_hash); hi; hi = switch_core_hash_next(&hi)) {
|
||||
for (hi = switch_core_hash_first(mod_sofia_globals.profile_hash); hi; hi = switch_core_hash_next(&hi)) {
|
||||
int rb = 0;
|
||||
uint32_t x = 0;
|
||||
switch_core_hash_this(hi, &var, NULL, &val);
|
||||
|
@ -5372,7 +5372,7 @@ switch_status_t list_profiles_full(const char *line, const char *cursor, switch_
|
|||
switch_status_t status = SWITCH_STATUS_FALSE;
|
||||
|
||||
switch_mutex_lock(mod_sofia_globals.hash_mutex);
|
||||
for (hi = switch_core_hash_first( mod_sofia_globals.profile_hash); hi; hi = switch_core_hash_next(&hi)) {
|
||||
for (hi = switch_core_hash_first(mod_sofia_globals.profile_hash); hi; hi = switch_core_hash_next(&hi)) {
|
||||
switch_core_hash_this(hi, &vvar, NULL, &val);
|
||||
|
||||
profile = (sofia_profile_t *) val;
|
||||
|
@ -5410,7 +5410,7 @@ static switch_status_t list_gateways(const char *line, const char *cursor, switc
|
|||
switch_status_t status = SWITCH_STATUS_FALSE;
|
||||
|
||||
switch_mutex_lock(mod_sofia_globals.hash_mutex);
|
||||
for (hi = switch_core_hash_first( mod_sofia_globals.profile_hash); hi; hi = switch_core_hash_next(&hi)) {
|
||||
for (hi = switch_core_hash_first(mod_sofia_globals.profile_hash); hi; hi = switch_core_hash_next(&hi)) {
|
||||
switch_core_hash_this(hi, &vvar, NULL, &val);
|
||||
profile = (sofia_profile_t *) val;
|
||||
if (sofia_test_pflag(profile, PFLAG_RUNNING)) {
|
||||
|
|
|
@ -7196,7 +7196,7 @@ nua_handle_t *sofia_global_nua_handle_by_replaces(sip_replaces_t *replaces)
|
|||
|
||||
switch_mutex_lock(mod_sofia_globals.hash_mutex);
|
||||
if (mod_sofia_globals.profile_hash) {
|
||||
for (hi = switch_core_hash_first( mod_sofia_globals.profile_hash); hi; hi = switch_core_hash_next(&hi)) {
|
||||
for (hi = switch_core_hash_first(mod_sofia_globals.profile_hash); hi; hi = switch_core_hash_next(&hi)) {
|
||||
switch_core_hash_this(hi, &var, NULL, &val);
|
||||
if ((profile = (sofia_profile_t *) val)) {
|
||||
if (!(nh = nua_handle_by_replaces(profile->nua, replaces))) {
|
||||
|
@ -7206,6 +7206,7 @@ nua_handle_t *sofia_global_nua_handle_by_replaces(sip_replaces_t *replaces)
|
|||
break;
|
||||
}
|
||||
}
|
||||
switch_safe_free(hi);
|
||||
}
|
||||
switch_mutex_unlock(mod_sofia_globals.hash_mutex);
|
||||
|
||||
|
|
|
@ -1653,7 +1653,7 @@ void sofia_glue_restart_all_profiles(void)
|
|||
|
||||
switch_mutex_lock(mod_sofia_globals.hash_mutex);
|
||||
if (mod_sofia_globals.profile_hash) {
|
||||
for (hi = switch_core_hash_first( mod_sofia_globals.profile_hash); hi; hi = switch_core_hash_next(&hi)) {
|
||||
for (hi = switch_core_hash_first(mod_sofia_globals.profile_hash); hi; hi = switch_core_hash_next(&hi)) {
|
||||
switch_core_hash_this(hi, &var, NULL, &val);
|
||||
if ((pptr = (sofia_profile_t *) val)) {
|
||||
int rsec = 10;
|
||||
|
@ -1688,7 +1688,7 @@ void sofia_glue_global_siptrace(switch_bool_t on)
|
|||
|
||||
switch_mutex_lock(mod_sofia_globals.hash_mutex);
|
||||
if (mod_sofia_globals.profile_hash) {
|
||||
for (hi = switch_core_hash_first( mod_sofia_globals.profile_hash); hi; hi = switch_core_hash_next(&hi)) {
|
||||
for (hi = switch_core_hash_first(mod_sofia_globals.profile_hash); hi; hi = switch_core_hash_next(&hi)) {
|
||||
switch_core_hash_this(hi, &var, NULL, &val);
|
||||
if ((pptr = (sofia_profile_t *) val)) {
|
||||
nua_set_params(pptr->nua, TPTAG_LOG(on), TAG_END());
|
||||
|
@ -1708,7 +1708,7 @@ void sofia_glue_global_standby(switch_bool_t on)
|
|||
|
||||
switch_mutex_lock(mod_sofia_globals.hash_mutex);
|
||||
if (mod_sofia_globals.profile_hash) {
|
||||
for (hi = switch_core_hash_first( mod_sofia_globals.profile_hash); hi; hi = switch_core_hash_next(&hi)) {
|
||||
for (hi = switch_core_hash_first(mod_sofia_globals.profile_hash); hi; hi = switch_core_hash_next(&hi)) {
|
||||
switch_core_hash_this(hi, &var, NULL, &val);
|
||||
if ((pptr = (sofia_profile_t *) val)) {
|
||||
if (on) {
|
||||
|
@ -1732,7 +1732,7 @@ void sofia_glue_global_capture(switch_bool_t on)
|
|||
|
||||
switch_mutex_lock(mod_sofia_globals.hash_mutex);
|
||||
if (mod_sofia_globals.profile_hash) {
|
||||
for (hi = switch_core_hash_first( mod_sofia_globals.profile_hash); hi; hi = switch_core_hash_next(&hi)) {
|
||||
for (hi = switch_core_hash_first(mod_sofia_globals.profile_hash); hi; hi = switch_core_hash_next(&hi)) {
|
||||
switch_core_hash_this(hi, &var, NULL, &val);
|
||||
if ((pptr = (sofia_profile_t *) val)) {
|
||||
nua_set_params(pptr->nua, TPTAG_CAPT(on ? mod_sofia_globals.capture_server : NULL), TAG_END());
|
||||
|
@ -1753,7 +1753,7 @@ void sofia_glue_global_watchdog(switch_bool_t on)
|
|||
|
||||
switch_mutex_lock(mod_sofia_globals.hash_mutex);
|
||||
if (mod_sofia_globals.profile_hash) {
|
||||
for (hi = switch_core_hash_first( mod_sofia_globals.profile_hash); hi; hi = switch_core_hash_next(&hi)) {
|
||||
for (hi = switch_core_hash_first(mod_sofia_globals.profile_hash); hi; hi = switch_core_hash_next(&hi)) {
|
||||
switch_core_hash_this(hi, &var, NULL, &val);
|
||||
if ((pptr = (sofia_profile_t *) val)) {
|
||||
pptr->watchdog_enabled = (on ? 1 : 0);
|
||||
|
@ -1776,7 +1776,7 @@ void sofia_glue_del_profile(sofia_profile_t *profile)
|
|||
|
||||
switch_mutex_lock(mod_sofia_globals.hash_mutex);
|
||||
if (mod_sofia_globals.profile_hash) {
|
||||
for (hi = switch_core_hash_first( mod_sofia_globals.profile_hash); hi; hi = switch_core_hash_next(&hi)) {
|
||||
for (hi = switch_core_hash_first(mod_sofia_globals.profile_hash); hi; hi = switch_core_hash_next(&hi)) {
|
||||
switch_core_hash_this(hi, &var, NULL, &val);
|
||||
if ((pptr = (sofia_profile_t *) val) && pptr == profile) {
|
||||
aliases[i++] = strdup((char *) var);
|
||||
|
|
|
@ -1101,7 +1101,7 @@ static int debounce_check(sofia_profile_t *profile, const char *user, const char
|
|||
void sofia_reg_close_handles(sofia_profile_t *profile)
|
||||
{
|
||||
nua_handle_t *nh = NULL;
|
||||
switch_hash_index_t *hi;
|
||||
switch_hash_index_t *hi = NULL;
|
||||
const void *var;
|
||||
void *val;
|
||||
|
||||
|
@ -1109,7 +1109,7 @@ void sofia_reg_close_handles(sofia_profile_t *profile)
|
|||
switch_mutex_lock(profile->flag_mutex);
|
||||
if (profile->reg_nh_hash) {
|
||||
top:
|
||||
for (hi = switch_core_hash_first( profile->reg_nh_hash); hi; hi = switch_core_hash_next(&hi)) {
|
||||
for (hi = switch_core_hash_first_iter( profile->reg_nh_hash, hi); hi; hi = switch_core_hash_next(&hi)) {
|
||||
switch_core_hash_this(hi, &var, NULL, &val);
|
||||
if ((nh = (nua_handle_t *) val)) {
|
||||
nua_handle_unref(nh);
|
||||
|
@ -1118,6 +1118,8 @@ void sofia_reg_close_handles(sofia_profile_t *profile)
|
|||
goto top;
|
||||
}
|
||||
}
|
||||
switch_safe_free(hi);
|
||||
|
||||
}
|
||||
switch_mutex_unlock(profile->flag_mutex);
|
||||
|
||||
|
@ -3155,7 +3157,7 @@ sofia_gateway_t *sofia_reg_find_gateway_by_realm__(const char *file, const char
|
|||
void *val;
|
||||
|
||||
switch_mutex_lock(mod_sofia_globals.hash_mutex);
|
||||
for (hi = switch_core_hash_first( mod_sofia_globals.gateway_hash); hi; hi = switch_core_hash_next(&hi)) {
|
||||
for (hi = switch_core_hash_first(mod_sofia_globals.gateway_hash); hi; hi = switch_core_hash_next(&hi)) {
|
||||
switch_core_hash_this(hi, &var, NULL, &val);
|
||||
if (key && (gateway = (sofia_gateway_t *) val) && !gateway->deleted && gateway->register_realm && !strcasecmp(gateway->register_realm, key)) {
|
||||
break;
|
||||
|
@ -3163,6 +3165,7 @@ sofia_gateway_t *sofia_reg_find_gateway_by_realm__(const char *file, const char
|
|||
gateway = NULL;
|
||||
}
|
||||
}
|
||||
switch_safe_free(hi);
|
||||
|
||||
if (gateway) {
|
||||
if (!sofia_test_pflag(gateway->profile, PFLAG_RUNNING) || gateway->deleted) {
|
||||
|
|
|
@ -279,7 +279,7 @@ static void do_rotate_all()
|
|||
}
|
||||
|
||||
switch_mutex_lock(globals.mutex);
|
||||
for (hi = switch_core_hash_first( globals.fd_hash); hi; hi = switch_core_hash_next(&hi)) {
|
||||
for (hi = switch_core_hash_first(globals.fd_hash); hi; hi = switch_core_hash_next(&hi)) {
|
||||
switch_core_hash_this(hi, NULL, NULL, &val);
|
||||
fd = (cdr_fd_t *) val;
|
||||
switch_mutex_lock(fd->mutex);
|
||||
|
@ -296,7 +296,7 @@ static void do_teardown()
|
|||
void *val;
|
||||
cdr_fd_t *fd;
|
||||
switch_mutex_lock(globals.mutex);
|
||||
for (hi = switch_core_hash_first( globals.fd_hash); hi; hi = switch_core_hash_next(&hi)) {
|
||||
for (hi = switch_core_hash_first(globals.fd_hash); hi; hi = switch_core_hash_next(&hi)) {
|
||||
switch_core_hash_this(hi, NULL, NULL, &val);
|
||||
fd = (cdr_fd_t *) val;
|
||||
switch_mutex_lock(fd->mutex);
|
||||
|
|
|
@ -401,7 +401,7 @@ static void event_handler(switch_event_t *event)
|
|||
}
|
||||
|
||||
if (sig && !strcmp(sig, "HUP")) {
|
||||
for (hi = switch_core_hash_first( globals.fd_hash); hi; hi = switch_core_hash_next(&hi)) {
|
||||
for (hi = switch_core_hash_first(globals.fd_hash); hi; hi = switch_core_hash_next(&hi)) {
|
||||
switch_core_hash_this(hi, NULL, NULL, &val);
|
||||
fd = (cdr_fd_t *) val;
|
||||
switch_mutex_lock(fd->mutex);
|
||||
|
|
|
@ -1132,7 +1132,7 @@ static switch_status_t handle_ref_tuple(listener_t *listener, erlang_msg * msg,
|
|||
switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG, "Hashed ref to %s\n", hash);
|
||||
|
||||
switch_thread_rwlock_rdlock(listener->session_rwlock);
|
||||
for (iter = switch_core_hash_first( listener->sessions); iter; iter = switch_core_hash_next(&iter)) {
|
||||
for (iter = switch_core_hash_first(listener->sessions); iter; iter = switch_core_hash_next(&iter)) {
|
||||
switch_core_hash_this(iter, &key, NULL, &val);
|
||||
se = (session_elem_t*)val;
|
||||
if (se->spawn_reply && !strncmp(se->spawn_reply->hash, hash, 100)) {
|
||||
|
@ -1154,6 +1154,7 @@ static switch_status_t handle_ref_tuple(listener_t *listener, erlang_msg * msg,
|
|||
break;
|
||||
}
|
||||
}
|
||||
switch_safe_free(iter);
|
||||
switch_thread_rwlock_unlock(listener->session_rwlock);
|
||||
|
||||
if (found) {
|
||||
|
|
|
@ -364,7 +364,7 @@ session_elem_t *find_session_elem_by_pid(listener_t *listener, erlang_pid *pid)
|
|||
session_elem_t *session = NULL;
|
||||
|
||||
switch_thread_rwlock_rdlock(listener->session_rwlock);
|
||||
for (iter = switch_core_hash_first( listener->sessions); iter; iter = switch_core_hash_next(&iter)) {
|
||||
for (iter = switch_core_hash_first(listener->sessions); iter; iter = switch_core_hash_next(&iter)) {
|
||||
switch_core_hash_this(iter, &key, NULL, &val);
|
||||
|
||||
if (((session_elem_t*)val)->process.type == ERLANG_PID && !ei_compare_pids(pid, &((session_elem_t*)val)->process.pid)) {
|
||||
|
@ -373,6 +373,7 @@ session_elem_t *find_session_elem_by_pid(listener_t *listener, erlang_pid *pid)
|
|||
break;
|
||||
}
|
||||
}
|
||||
switch_safe_free(iter);
|
||||
switch_thread_rwlock_unlock(listener->session_rwlock);
|
||||
|
||||
return session;
|
||||
|
@ -644,7 +645,7 @@ static switch_status_t check_attached_sessions(listener_t *listener, int *msgs_s
|
|||
|
||||
/* TODO try to minimize critical section */
|
||||
switch_thread_rwlock_rdlock(listener->session_rwlock);
|
||||
for (iter = switch_core_hash_first( listener->sessions); iter; iter = switch_core_hash_next(&iter)) {
|
||||
for (iter = switch_core_hash_first(listener->sessions); iter; iter = switch_core_hash_next(&iter)) {
|
||||
switch_core_hash_this(iter, &key, NULL, &value);
|
||||
sp = (session_elem_t*)value;
|
||||
if (switch_test_flag(sp, LFLAG_WAITING_FOR_PID)) {
|
||||
|
@ -1333,7 +1334,7 @@ void destroy_listener(listener_t * listener)
|
|||
|
||||
/* clean up all the attached sessions */
|
||||
switch_thread_rwlock_wrlock(listener->session_rwlock);
|
||||
for (iter = switch_core_hash_first( listener->sessions); iter; iter = switch_core_hash_next(&iter)) {
|
||||
for (iter = switch_core_hash_first(listener->sessions); iter; iter = switch_core_hash_next(&iter)) {
|
||||
switch_core_hash_this(iter, &key, NULL, &value);
|
||||
s = (session_elem_t*)value;
|
||||
switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "Orphaning call %s\n", s->uuid_str);
|
||||
|
@ -1529,7 +1530,7 @@ int count_listener_sessions(listener_t *listener)
|
|||
switch_hash_index_t *iter;
|
||||
|
||||
switch_thread_rwlock_rdlock(listener->session_rwlock);
|
||||
for (iter = switch_core_hash_first( listener->sessions); iter; iter = switch_core_hash_next(&iter)) {
|
||||
for (iter = switch_core_hash_first(listener->sessions); iter; iter = switch_core_hash_next(&iter)) {
|
||||
count++;
|
||||
}
|
||||
switch_thread_rwlock_unlock(listener->session_rwlock);
|
||||
|
@ -1750,7 +1751,7 @@ SWITCH_STANDARD_API(erlang_cmd)
|
|||
|
||||
found = 1;
|
||||
switch_thread_rwlock_rdlock(l->session_rwlock);
|
||||
for (iter = switch_core_hash_first( l->sessions); iter; iter = switch_core_hash_next(&iter)) {
|
||||
for (iter = switch_core_hash_first(l->sessions); iter; iter = switch_core_hash_next(&iter)) {
|
||||
empty = 0;
|
||||
switch_core_hash_this(iter, &key, NULL, &value);
|
||||
sp = (session_elem_t*)value;
|
||||
|
@ -1791,7 +1792,7 @@ SWITCH_STANDARD_API(erlang_cmd)
|
|||
}
|
||||
stream->write_function(stream, "CUSTOM:\n", switch_event_name(x));
|
||||
|
||||
for (iter = switch_core_hash_first( l->event_hash); iter; iter = switch_core_hash_next(&iter)) {
|
||||
for (iter = switch_core_hash_first(l->event_hash); iter; iter = switch_core_hash_next(&iter)) {
|
||||
switch_core_hash_this(iter, &key, NULL, &val);
|
||||
stream->write_function(stream, "\t%s\n", (char *)key);
|
||||
}
|
||||
|
|
|
@ -247,7 +247,7 @@ static void event_handler(switch_event_t *event)
|
|||
struct peer_status *last;
|
||||
char *host;
|
||||
|
||||
for (cur = switch_core_hash_first( globals.peer_hash); cur; cur = switch_core_hash_next(&cur)) {
|
||||
for (cur = switch_core_hash_first(globals.peer_hash); cur; cur = switch_core_hash_next(&cur)) {
|
||||
switch_core_hash_this(cur, &key, &keylen, &value);
|
||||
host = (char *) key;
|
||||
last = (struct peer_status *) value;
|
||||
|
@ -351,7 +351,7 @@ SWITCH_STANDARD_API(multicast_peers)
|
|||
char *host;
|
||||
int i = 0;
|
||||
|
||||
for (cur = switch_core_hash_first( globals.peer_hash); cur; cur = switch_core_hash_next(&cur)) {
|
||||
for (cur = switch_core_hash_first(globals.peer_hash); cur; cur = switch_core_hash_next(&cur)) {
|
||||
switch_core_hash_this(cur, &key, &keylen, &value);
|
||||
host = (char *) key;
|
||||
last = (struct peer_status *) value;
|
||||
|
|
|
@ -495,7 +495,7 @@ static switch_status_t my_on_reporting(switch_core_session_t *session)
|
|||
|
||||
status = SWITCH_STATUS_SUCCESS;
|
||||
|
||||
for (hi = switch_core_hash_first( globals.profile_hash); hi; hi = switch_core_hash_next(&hi)) {
|
||||
for (hi = switch_core_hash_first(globals.profile_hash); hi; hi = switch_core_hash_next(&hi)) {
|
||||
cdr_profile_t *profile;
|
||||
switch_core_hash_this(hi, NULL, NULL, &val);
|
||||
profile = (cdr_profile_t *) val;
|
||||
|
@ -518,7 +518,7 @@ static void event_handler(switch_event_t *event)
|
|||
const char *sig = switch_event_get_header(event, "Trapped-Signal");
|
||||
|
||||
if (sig && !strcmp(sig, "HUP")) {
|
||||
for (hi = switch_core_hash_first( globals.profile_hash); hi; hi = switch_core_hash_next(&hi)) {
|
||||
for (hi = switch_core_hash_first(globals.profile_hash); hi; hi = switch_core_hash_next(&hi)) {
|
||||
cdr_profile_t *profile;
|
||||
switch_core_hash_this(hi, NULL, NULL, &val);
|
||||
profile = (cdr_profile_t *) val;
|
||||
|
@ -785,7 +785,7 @@ SWITCH_MODULE_SHUTDOWN_FUNCTION(mod_format_cdr_shutdown)
|
|||
switch_event_unbind(&globals.node);
|
||||
switch_core_remove_state_handler(&state_handlers);
|
||||
|
||||
for (hi = switch_core_hash_first( globals.profile_hash); hi; hi = switch_core_hash_next(&hi)) {
|
||||
for (hi = switch_core_hash_first(globals.profile_hash); hi; hi = switch_core_hash_next(&hi)) {
|
||||
cdr_profile_t *profile;
|
||||
switch_core_hash_this(hi, NULL, NULL, &val);
|
||||
profile = (cdr_profile_t *) val;
|
||||
|
|
|
@ -508,6 +508,7 @@ static void pause_when_offline(void)
|
|||
break;
|
||||
}
|
||||
}
|
||||
switch_safe_free(hi);
|
||||
|
||||
if (is_online) {
|
||||
resume_inbound_calling();
|
||||
|
|
|
@ -105,7 +105,7 @@ static void unsubscribe(const char *uuid, const char *signal_type, const char *j
|
|||
switch_log_printf(SWITCH_CHANNEL_UUID_LOG(uuid), SWITCH_LOG_DEBUG, "Unsubscribe %s => %s\n", signal_type, jid);
|
||||
|
||||
/* clean up hash if empty */
|
||||
if (!switch_core_hash_first(signal_subscribers)) {
|
||||
if (switch_core_hash_empty(signal_subscribers)) {
|
||||
switch_log_printf(SWITCH_CHANNEL_UUID_LOG(uuid), SWITCH_LOG_DEBUG, "Destroy %s subscriber hash\n", signal_type);
|
||||
switch_core_hash_destroy(&signal_subscribers);
|
||||
switch_core_hash_delete(globals.subscribers, key);
|
||||
|
|
|
@ -810,7 +810,7 @@ SWITCH_STANDARD_API(show_local_stream_function)
|
|||
switch_mutex_lock(globals.mutex);
|
||||
|
||||
if (zstr(cmd)) {
|
||||
for (hi = switch_core_hash_first( globals.source_hash); hi; hi = switch_core_hash_next(&hi)) {
|
||||
for (hi = switch_core_hash_first(globals.source_hash); hi; hi = switch_core_hash_next(&hi)) {
|
||||
switch_core_hash_this(hi, &var, NULL, &val);
|
||||
if ((source = (local_stream_source_t *) val)) {
|
||||
stream->write_function(stream, "%s,%s\n", source->name, source->location);
|
||||
|
|
|
@ -198,7 +198,7 @@ void FSXML::DestroyHash()
|
|||
}
|
||||
|
||||
/* First destroy all objects in the hash */
|
||||
for (hi = switch_core_hash_first( tmp); hi; hi = switch_core_hash_next(&hi)) {
|
||||
for (hi = switch_core_hash_first(tmp); hi; hi = switch_core_hash_next(&hi)) {
|
||||
const void *var = NULL;
|
||||
void *val = NULL;
|
||||
FSXML *obj;
|
||||
|
|
|
@ -264,7 +264,7 @@ static switch_status_t process_node(const switch_log_node_t *node, switch_log_le
|
|||
const void *var;
|
||||
logfile_profile_t *profile;
|
||||
|
||||
for (hi = switch_core_hash_first( profile_hash); hi; hi = switch_core_hash_next(&hi)) {
|
||||
for (hi = switch_core_hash_first(profile_hash); hi; hi = switch_core_hash_next(&hi)) {
|
||||
size_t mask = 0;
|
||||
size_t ok = 0;
|
||||
|
||||
|
@ -380,14 +380,14 @@ static void event_handler(switch_event_t *event)
|
|||
|
||||
if (sig && !strcmp(sig, "HUP")) {
|
||||
if (globals.rotate) {
|
||||
for (hi = switch_core_hash_first( profile_hash); hi; hi = switch_core_hash_next(&hi)) {
|
||||
for (hi = switch_core_hash_first(profile_hash); hi; hi = switch_core_hash_next(&hi)) {
|
||||
switch_core_hash_this(hi, &var, NULL, &val);
|
||||
profile = val;
|
||||
mod_logfile_rotate(profile);
|
||||
}
|
||||
} else {
|
||||
switch_mutex_lock(globals.mutex);
|
||||
for (hi = switch_core_hash_first( profile_hash); hi; hi = switch_core_hash_next(&hi)) {
|
||||
for (hi = switch_core_hash_first(profile_hash); hi; hi = switch_core_hash_next(&hi)) {
|
||||
switch_core_hash_this(hi, &var, NULL, &val);
|
||||
profile = val;
|
||||
switch_file_close(profile->log_afd);
|
||||
|
@ -461,7 +461,7 @@ SWITCH_MODULE_SHUTDOWN_FUNCTION(mod_logfile_shutdown)
|
|||
switch_log_unbind_logger(mod_logfile_logger);
|
||||
switch_event_unbind(&globals.node);
|
||||
|
||||
for (hi = switch_core_hash_first( profile_hash); hi; hi = switch_core_hash_next(&hi)) {
|
||||
for (hi = switch_core_hash_first(profile_hash); hi; hi = switch_core_hash_next(&hi)) {
|
||||
logfile_profile_t *profile;
|
||||
switch_core_hash_this(hi, &var, NULL, &val);
|
||||
if ((profile = (logfile_profile_t *) val)) {
|
||||
|
|
|
@ -1023,7 +1023,7 @@ SWITCH_DECLARE(const char *) switch_core_mime_ext2type(const char *ext)
|
|||
|
||||
SWITCH_DECLARE(switch_hash_index_t *) switch_core_mime_index(void)
|
||||
{
|
||||
return switch_core_hash_first( runtime.mime_types);
|
||||
return switch_core_hash_first(runtime.mime_types);
|
||||
}
|
||||
|
||||
SWITCH_DECLARE(switch_status_t) switch_core_mime_add_type(const char *type, const char *ext)
|
||||
|
|
|
@ -205,9 +205,22 @@ SWITCH_DECLARE(void *) switch_core_hash_find_rdlock(switch_hash_t *hash, const c
|
|||
return val;
|
||||
}
|
||||
|
||||
SWITCH_DECLARE(switch_hash_index_t *) switch_core_hash_first(switch_hash_t *hash)
|
||||
SWITCH_DECLARE(switch_bool_t) switch_core_hash_empty(switch_hash_t *hash)
|
||||
{
|
||||
return switch_hashtable_first(hash);
|
||||
switch_hash_index_t *hi = switch_core_hash_first(hash);
|
||||
|
||||
if (hi) {
|
||||
switch_safe_free(hi);
|
||||
return SWITCH_FALSE;
|
||||
}
|
||||
|
||||
return SWITCH_TRUE;
|
||||
|
||||
}
|
||||
|
||||
SWITCH_DECLARE(switch_hash_index_t *) switch_core_hash_first_iter(switch_hash_t *hash, switch_hash_index_t *hi)
|
||||
{
|
||||
return switch_hashtable_first_iter(hash, hi);
|
||||
}
|
||||
|
||||
SWITCH_DECLARE(switch_hash_index_t *) switch_core_hash_next(switch_hash_index_t **hi)
|
||||
|
|
|
@ -222,7 +222,7 @@ SWITCH_DECLARE(uint32_t) switch_core_session_hupall_matching_var_ans(const char
|
|||
return r;
|
||||
|
||||
switch_mutex_lock(runtime.session_hash_mutex);
|
||||
for (hi = switch_core_hash_first( session_manager.session_table); hi; hi = switch_core_hash_next(&hi)) {
|
||||
for (hi = switch_core_hash_first(session_manager.session_table); hi; hi = switch_core_hash_next(&hi)) {
|
||||
switch_core_hash_this(hi, NULL, NULL, &val);
|
||||
if (val) {
|
||||
session = (switch_core_session_t *) val;
|
||||
|
@ -275,7 +275,7 @@ SWITCH_DECLARE(switch_console_callback_match_t *) switch_core_session_findall_ma
|
|||
switch_core_new_memory_pool(&pool);
|
||||
|
||||
switch_mutex_lock(runtime.session_hash_mutex);
|
||||
for (hi = switch_core_hash_first( session_manager.session_table); hi; hi = switch_core_hash_next(&hi)) {
|
||||
for (hi = switch_core_hash_first(session_manager.session_table); hi; hi = switch_core_hash_next(&hi)) {
|
||||
switch_core_hash_this(hi, NULL, NULL, &val);
|
||||
if (val) {
|
||||
session = (switch_core_session_t *) val;
|
||||
|
@ -319,7 +319,7 @@ SWITCH_DECLARE(void) switch_core_session_hupall_endpoint(const switch_endpoint_i
|
|||
switch_core_new_memory_pool(&pool);
|
||||
|
||||
switch_mutex_lock(runtime.session_hash_mutex);
|
||||
for (hi = switch_core_hash_first( session_manager.session_table); hi; hi = switch_core_hash_next(&hi)) {
|
||||
for (hi = switch_core_hash_first(session_manager.session_table); hi; hi = switch_core_hash_next(&hi)) {
|
||||
switch_core_hash_this(hi, NULL, NULL, &val);
|
||||
if (val) {
|
||||
session = (switch_core_session_t *) val;
|
||||
|
@ -359,7 +359,7 @@ SWITCH_DECLARE(void) switch_core_session_hupall(switch_call_cause_t cause)
|
|||
|
||||
|
||||
switch_mutex_lock(runtime.session_hash_mutex);
|
||||
for (hi = switch_core_hash_first( session_manager.session_table); hi; hi = switch_core_hash_next(&hi)) {
|
||||
for (hi = switch_core_hash_first(session_manager.session_table); hi; hi = switch_core_hash_next(&hi)) {
|
||||
switch_core_hash_this(hi, NULL, NULL, &val);
|
||||
if (val) {
|
||||
session = (switch_core_session_t *) val;
|
||||
|
@ -394,7 +394,7 @@ SWITCH_DECLARE(switch_console_callback_match_t *) switch_core_session_findall(vo
|
|||
switch_console_callback_match_t *my_matches = NULL;
|
||||
|
||||
switch_mutex_lock(runtime.session_hash_mutex);
|
||||
for (hi = switch_core_hash_first( session_manager.session_table); hi; hi = switch_core_hash_next(&hi)) {
|
||||
for (hi = switch_core_hash_first(session_manager.session_table); hi; hi = switch_core_hash_next(&hi)) {
|
||||
switch_core_hash_this(hi, NULL, NULL, &val);
|
||||
if (val) {
|
||||
session = (switch_core_session_t *) val;
|
||||
|
|
|
@ -576,7 +576,7 @@ SWITCH_DECLARE(switch_status_t) switch_event_shutdown(void)
|
|||
}
|
||||
}
|
||||
|
||||
for (hi = switch_core_hash_first( CUSTOM_HASH); hi; hi = switch_core_hash_next(&hi)) {
|
||||
for (hi = switch_core_hash_first(CUSTOM_HASH); hi; hi = switch_core_hash_next(&hi)) {
|
||||
switch_event_subclass_t *subclass;
|
||||
switch_core_hash_this(hi, &var, NULL, &val);
|
||||
if ((subclass = (switch_event_subclass_t *) val)) {
|
||||
|
@ -2686,14 +2686,14 @@ static uint32_t switch_event_channel_unsub_head(switch_event_channel_func_t func
|
|||
|
||||
static void unsub_all_switch_event_channel(void)
|
||||
{
|
||||
switch_hash_index_t *hi;
|
||||
switch_hash_index_t *hi = NULL;
|
||||
const void *var;
|
||||
void *val;
|
||||
switch_event_channel_sub_node_head_t *head;
|
||||
|
||||
switch_thread_rwlock_wrlock(event_channel_manager.rwlock);
|
||||
|
||||
while ((hi = switch_core_hash_first( event_channel_manager.perm_hash))) {
|
||||
while ((hi = switch_core_hash_first_iter( event_channel_manager.perm_hash, hi))) {
|
||||
switch_event_t *vals = NULL;
|
||||
switch_core_hash_this(hi, &var, NULL, &val);
|
||||
vals = (switch_event_t *) val;
|
||||
|
@ -2701,7 +2701,7 @@ static void unsub_all_switch_event_channel(void)
|
|||
switch_event_destroy(&vals);
|
||||
}
|
||||
|
||||
while ((hi = switch_core_hash_first( event_channel_manager.hash))) {
|
||||
while ((hi = switch_core_hash_first_iter( event_channel_manager.hash, hi))) {
|
||||
switch_core_hash_this(hi, NULL, NULL, &val);
|
||||
head = (switch_event_channel_sub_node_head_t *) val;
|
||||
switch_event_channel_unsub_head(NULL, head);
|
||||
|
@ -2724,7 +2724,7 @@ static uint32_t switch_event_channel_unsub_channel(switch_event_channel_func_t f
|
|||
switch_hash_index_t *hi;
|
||||
void *val;
|
||||
|
||||
for (hi = switch_core_hash_first( event_channel_manager.hash); hi; hi = switch_core_hash_next(&hi)) {
|
||||
for (hi = switch_core_hash_first(event_channel_manager.hash); hi; hi = switch_core_hash_next(&hi)) {
|
||||
switch_core_hash_this(hi, NULL, NULL, &val);
|
||||
|
||||
if (val) {
|
||||
|
|
|
@ -294,11 +294,16 @@ SWITCH_DECLARE(switch_hashtable_iterator_t *) switch_hashtable_next(switch_hasht
|
|||
return NULL;
|
||||
}
|
||||
|
||||
SWITCH_DECLARE(switch_hashtable_iterator_t *) switch_hashtable_first(switch_hashtable_t *h)
|
||||
SWITCH_DECLARE(switch_hashtable_iterator_t *) switch_hashtable_first_iter(switch_hashtable_t *h, switch_hashtable_iterator_t *it)
|
||||
{
|
||||
switch_hashtable_iterator_t *iterator;
|
||||
|
||||
switch_zmalloc(iterator, sizeof(*iterator));
|
||||
if (it) {
|
||||
iterator = it;
|
||||
} else {
|
||||
switch_zmalloc(iterator, sizeof(*iterator));
|
||||
}
|
||||
|
||||
switch_assert(iterator);
|
||||
|
||||
iterator->pos = 0;
|
||||
|
|
|
@ -118,7 +118,7 @@ static void switch_loadable_module_runtime(void)
|
|||
switch_loadable_module_t *module;
|
||||
|
||||
switch_mutex_lock(loadable_modules.mutex);
|
||||
for (hi = switch_core_hash_first( loadable_modules.module_hash); hi; hi = switch_core_hash_next(&hi)) {
|
||||
for (hi = switch_core_hash_first(loadable_modules.module_hash); hi; hi = switch_core_hash_next(&hi)) {
|
||||
switch_core_hash_this(hi, NULL, NULL, &val);
|
||||
module = (switch_loadable_module_t *) val;
|
||||
|
||||
|
@ -620,7 +620,7 @@ static switch_status_t do_chat_send(switch_event_t *message_event)
|
|||
|
||||
if (!switch_true(replying) && !switch_stristr("global", proto) && !switch_true(switch_event_get_header(message_event, "skip_global_process"))) {
|
||||
switch_mutex_lock(loadable_modules.mutex);
|
||||
for (hi = switch_core_hash_first( loadable_modules.chat_hash); hi; hi = switch_core_hash_next(&hi)) {
|
||||
for (hi = switch_core_hash_first(loadable_modules.chat_hash); hi; hi = switch_core_hash_next(&hi)) {
|
||||
switch_core_hash_this(hi, &var, NULL, &val);
|
||||
|
||||
if ((ci = (switch_chat_interface_t *) val)) {
|
||||
|
@ -647,6 +647,7 @@ static switch_status_t do_chat_send(switch_event_t *message_event)
|
|||
}
|
||||
}
|
||||
}
|
||||
switch_safe_free(hi);
|
||||
switch_mutex_unlock(loadable_modules.mutex);
|
||||
}
|
||||
|
||||
|
@ -1639,7 +1640,7 @@ SWITCH_DECLARE(switch_status_t) switch_loadable_module_enumerate_loaded(switch_m
|
|||
switch_loadable_module_t *module;
|
||||
|
||||
switch_mutex_lock(loadable_modules.mutex);
|
||||
for (hi = switch_core_hash_first( loadable_modules.module_hash); hi; hi = switch_core_hash_next(&hi)) {
|
||||
for (hi = switch_core_hash_first(loadable_modules.module_hash); hi; hi = switch_core_hash_next(&hi)) {
|
||||
switch_core_hash_this(hi, NULL, NULL, &val);
|
||||
module = (switch_loadable_module_t *) val;
|
||||
|
||||
|
@ -1986,7 +1987,7 @@ SWITCH_DECLARE(void) switch_loadable_module_shutdown(void)
|
|||
}
|
||||
|
||||
|
||||
for (hi = switch_core_hash_first( loadable_modules.module_hash); hi; hi = switch_core_hash_next(&hi)) {
|
||||
for (hi = switch_core_hash_first(loadable_modules.module_hash); hi; hi = switch_core_hash_next(&hi)) {
|
||||
switch_core_hash_this(hi, NULL, NULL, &val);
|
||||
module = (switch_loadable_module_t *) val;
|
||||
if (!module->perm) {
|
||||
|
@ -1996,7 +1997,7 @@ SWITCH_DECLARE(void) switch_loadable_module_shutdown(void)
|
|||
|
||||
switch_yield(1000000);
|
||||
|
||||
for (hi = switch_core_hash_first( loadable_modules.module_hash); hi; hi = switch_core_hash_next(&hi)) {
|
||||
for (hi = switch_core_hash_first(loadable_modules.module_hash); hi; hi = switch_core_hash_next(&hi)) {
|
||||
switch_core_hash_this(hi, NULL, NULL, &val);
|
||||
module = (switch_loadable_module_t *) val;
|
||||
if (!module->perm) {
|
||||
|
@ -2196,7 +2197,7 @@ SWITCH_DECLARE(int) switch_loadable_module_get_codecs(const switch_codec_impleme
|
|||
const switch_codec_implementation_t *imp;
|
||||
|
||||
switch_mutex_lock(loadable_modules.mutex);
|
||||
for (hi = switch_core_hash_first( loadable_modules.codec_hash); hi; hi = switch_core_hash_next(&hi)) {
|
||||
for (hi = switch_core_hash_first(loadable_modules.codec_hash); hi; hi = switch_core_hash_next(&hi)) {
|
||||
switch_core_hash_this(hi, NULL, NULL, &val);
|
||||
codec_interface = (switch_codec_interface_t *) val;
|
||||
|
||||
|
@ -2218,6 +2219,7 @@ SWITCH_DECLARE(int) switch_loadable_module_get_codecs(const switch_codec_impleme
|
|||
break;
|
||||
}
|
||||
}
|
||||
switch_safe_free(hi);
|
||||
|
||||
switch_mutex_unlock(loadable_modules.mutex);
|
||||
|
||||
|
|
|
@ -2017,7 +2017,7 @@ SWITCH_DECLARE(void) switch_rtp_shutdown(void)
|
|||
|
||||
switch_mutex_lock(port_lock);
|
||||
|
||||
for (hi = switch_core_hash_first( alloc_hash); hi; hi = switch_core_hash_next(&hi)) {
|
||||
for (hi = switch_core_hash_first(alloc_hash); hi; hi = switch_core_hash_next(&hi)) {
|
||||
switch_core_hash_this(hi, &var, NULL, &val);
|
||||
if ((alloc = (switch_core_port_allocator_t *) val)) {
|
||||
switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG, "Destroy port allocator for %s\n", (char *) var);
|
||||
|
|
|
@ -1945,7 +1945,7 @@ SWITCH_DECLARE(void) switch_xml_merge_user(switch_xml_t user, switch_xml_t domai
|
|||
|
||||
SWITCH_DECLARE(uint32_t) switch_xml_clear_user_cache(const char *key, const char *user_name, const char *domain_name)
|
||||
{
|
||||
switch_hash_index_t *hi;
|
||||
switch_hash_index_t *hi = NULL;
|
||||
void *val;
|
||||
const void *var;
|
||||
char mega_key[1024];
|
||||
|
@ -1971,18 +1971,20 @@ SWITCH_DECLARE(uint32_t) switch_xml_clear_user_cache(const char *key, const char
|
|||
|
||||
} else {
|
||||
|
||||
while ((hi = switch_core_hash_first( CACHE_HASH))) {
|
||||
while ((hi = switch_core_hash_first_iter( CACHE_HASH, hi))) {
|
||||
switch_core_hash_this(hi, &var, NULL, &val);
|
||||
switch_xml_free(val);
|
||||
switch_core_hash_delete(CACHE_HASH, var);
|
||||
r++;
|
||||
}
|
||||
|
||||
while ((hi = switch_core_hash_first( CACHE_EXPIRES_HASH))) {
|
||||
while ((hi = switch_core_hash_first_iter( CACHE_EXPIRES_HASH, hi))) {
|
||||
switch_core_hash_this(hi, &var, NULL, &val);
|
||||
switch_safe_free(val);
|
||||
switch_core_hash_delete(CACHE_EXPIRES_HASH, var);
|
||||
}
|
||||
|
||||
switch_safe_free(hi);
|
||||
}
|
||||
|
||||
switch_mutex_unlock(CACHE_MUTEX);
|
||||
|
|
Loading…
Reference in New Issue