[Freeswitch-trunk] [commit] r6184 - freeswitch/trunk/src/mod/endpoints/mod_sofia
Freeswitch SVN
anthm at freeswitch.org
Wed Nov 7 22:16:29 EST 2007
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);
}
More information about the Freeswitch-trunk
mailing list