]> git.ipfire.org Git - thirdparty/freeswitch.git/commitdiff
mod_sofia: Correct a problem where restarting profile would cause some profile hash...
authorMarc Olivier Chouinard <mochouinard@moctel.com>
Fri, 25 Mar 2011 19:50:52 +0000 (15:50 -0400)
committerMarc Olivier Chouinard <mochouinard@moctel.com>
Fri, 25 Mar 2011 19:50:52 +0000 (15:50 -0400)
src/mod/endpoints/mod_sofia/sofia_glue.c

index cbb8cb34852c625fd5dba875e95d496bac9e1668..acb0a05aaa72196fa8efd29de0fb1c6cc530f540 100644 (file)
@@ -5210,12 +5210,14 @@ void sofia_glue_del_profile(sofia_profile_t *profile)
                }
 
                for (gp = profile->gateways; gp; gp = gp->next) {
+                       char *pkey = switch_mprintf("%s::%s", profile->name, gp->name);
+
                        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_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_NOTICE, "deleted gateway %s\n", gp->name);
-                       profile->gateways = NULL;
+                       switch_core_hash_delete(mod_sofia_globals.gateway_hash, pkey);
+                       switch_safe_free(pkey);
+                       switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_NOTICE, "deleted gateway %s from profile %s\n", gp->name, profile->name);
                }
+               profile->gateways = NULL;
        }
        switch_mutex_unlock(mod_sofia_globals.hash_mutex);
 }