]> git.ipfire.org Git - thirdparty/freeswitch.git/commitdiff
fix profile reload issue
authorAnthony Minessale <anthony.minessale@gmail.com>
Thu, 8 Nov 2007 14:06:32 +0000 (14:06 +0000)
committerAnthony Minessale <anthony.minessale@gmail.com>
Thu, 8 Nov 2007 14:06:32 +0000 (14:06 +0000)
git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@6186 d0543943-73ff-0310-b7d9-9358b9ac24b2

src/mod/endpoints/mod_sofia/sofia_glue.c

index 6e1579fb92ded5f86f0248dccc12702cad6f6856..dbbdb0289a6bbb6d0702b940eb7dfbc700e0b07c 100644 (file)
@@ -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);