]> git.ipfire.org Git - thirdparty/freeswitch.git/commitdiff
fix sofia flush_inbound_reg to work when @domain is given
authorTravis Cross <tc@traviscross.com>
Sun, 16 Jan 2011 22:27:56 +0000 (22:27 +0000)
committerTravis Cross <tc@traviscross.com>
Sun, 16 Jan 2011 22:33:49 +0000 (22:33 +0000)
Prior to this change, calling flush_inbound_reg with @domain will
reboot all matching devices (if reboot is specified), but will not
actually flush the matching registrations.

src/mod/endpoints/mod_sofia/sofia_reg.c

index 344e51774d113b61491d0777dafd562e105f3221..f644ff772b6cb1428ffc7496ac1481ee34acd190 100644 (file)
@@ -606,16 +606,16 @@ void sofia_reg_expire_call_id(sofia_profile_t *profile, const char *call_id, int
        sql = switch_mprintf("select call_id,sip_user,sip_host,contact,status,rpid,expires"
                                                 ",user_agent,server_user,server_host,profile_name,network_ip"
                                                 ",%d from sip_registrations where call_id='%q' %s", reboot, call_id, sqlextra);
-       switch_safe_free(sqlextra);
 
        switch_mutex_lock(profile->ireg_mutex);
        sofia_glue_execute_sql_callback(profile, NULL, sql, sofia_reg_del_callback, profile);
        switch_mutex_unlock(profile->ireg_mutex);
        switch_safe_free(sql);
 
-       sql = switch_mprintf("delete from sip_registrations where call_id='%q' or (sip_user='%q' and sip_host='%q')", call_id, user, host);
+       sql = switch_mprintf("delete from sip_registrations where call_id='%q' %s", call_id, sqlextra);
        sofia_glue_execute_sql_now(profile, &sql, SWITCH_FALSE);
 
+       switch_safe_free(sqlextra);
        switch_safe_free(sql);
        switch_safe_free(dup);