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();
+ }
}
}
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);