[commit] r6184 - freeswitch/trunk/src/mod/endpoints/mod_sofia
Author: anthm Date: Wed Nov 7 22:16:28 2007 New Revision: 6184 Modified: freeswitch/trunk/src/mod/endpoints/mod_sofia/sofia.c freeswitch/trunk/src/mod/endpoints/mod_sofia/sofia_glue.c Log: fix restart Modified: freeswitch/trunk/src/mod/endpoints/mod_sofia/sofia.c ============================================================================== --- freeswitch/trunk/src/mod/endpoints/mod_sofia/sofia.c (original) +++ freeswitch/trunk/src/mod/endpoints/mod_sofia/sofia.c Wed Nov 7 22:16:28 2007 @@ -457,7 +457,8 @@ su_root_run(profile->s_root); nua_destroy(profile->nua); - + switch_mutex_lock(profile->ireg_mutex); + switch_mutex_unlock(profile->ireg_mutex); if (switch_event_create(&s_event, SWITCH_EVENT_UNPUBLISH) == SWITCH_STATUS_SUCCESS) { switch_event_add_header(s_event, SWITCH_STACK_BOTTOM, "service", "_sip._udp,_sip._tcp,_sip._sctp"); Modified: freeswitch/trunk/src/mod/endpoints/mod_sofia/sofia_glue.c ============================================================================== --- freeswitch/trunk/src/mod/endpoints/mod_sofia/sofia_glue.c (original) +++ freeswitch/trunk/src/mod/endpoints/mod_sofia/sofia_glue.c Wed Nov 7 22:16:28 2007 @@ -1658,9 +1658,27 @@ void sofia_glue_del_profile(sofia_profile_t *profile) { sofia_gateway_t *gp; - + char *aliases[512]; + int i = 0, j = 0; + switch_hash_index_t *hi; + const void *var; + void *val; + switch_mutex_lock(mod_sofia_globals.hash_mutex); - switch_core_hash_delete(mod_sofia_globals.profile_hash, profile->name); + + 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(); + } + } + + for (j = 0; j < i && j < 512; j++) { + switch_core_hash_delete(mod_sofia_globals.profile_hash, aliases[j]); + free(aliases[j]); + } + for (gp = profile->gateways; gp; gp = gp->next) { switch_core_hash_delete(mod_sofia_globals.gateway_hash, gp->name); }
participants (1)
-
Freeswitch SVN