From e4e4f007c5c2c44bb38569a11557304d082e7e0f Mon Sep 17 00:00:00 2001 From: Anthony Minessale <anthony.minessale@gmail.com> Date: Thu, 8 Nov 2007 14:06:32 +0000 Subject: [PATCH] fix profile reload issue git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@6186 d0543943-73ff-0310-b7d9-9358b9ac24b2 --- src/mod/endpoints/mod_sofia/sofia_glue.c | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/src/mod/endpoints/mod_sofia/sofia_glue.c b/src/mod/endpoints/mod_sofia/sofia_glue.c index 6e1579fb92..dbbdb0289a 100644 --- a/src/mod/endpoints/mod_sofia/sofia_glue.c +++ b/src/mod/endpoints/mod_sofia/sofia_glue.c @@ -1663,14 +1663,17 @@ void sofia_glue_del_profile(sofia_profile_t *profile) switch_hash_index_t *hi; const void *var; void *val; + sofia_profile_t *pptr; switch_mutex_lock(mod_sofia_globals.hash_mutex); for (hi = switch_hash_first(NULL, mod_sofia_globals.profile_hash); hi; hi = switch_hash_next(hi)) { switch_hash_this(hi, &var, NULL, &val); - aliases[i++] = strdup((char *) var); - if (i == 512) { - abort(); + if ((pptr = (sofia_profile_t *) val) && pptr == profile) { + aliases[i++] = strdup((char *) var); + if (i == 512) { + abort(); + } } } @@ -1681,6 +1684,8 @@ void sofia_glue_del_profile(sofia_profile_t *profile) for (gp = profile->gateways; gp; gp = gp->next) { switch_core_hash_delete(mod_sofia_globals.gateway_hash, gp->name); + switch_core_hash_delete(mod_sofia_globals.gateway_hash, gp->register_from); + switch_core_hash_delete(mod_sofia_globals.gateway_hash, gp->register_contact); } switch_mutex_unlock(mod_sofia_globals.hash_mutex);