Author: anthm Date: Mon Apr 14 11:07:43 2008 New Revision: 8101 Modified: freeswitch/trunk/src/mod/endpoints/mod_sofia/sofia_reg.c Log: execute sql inline to avoid race Modified: freeswitch/trunk/src/mod/endpoints/mod_sofia/sofia_reg.c ============================================================================== --- freeswitch/trunk/src/mod/endpoints/mod_sofia/sofia_reg.c (original) +++ freeswitch/trunk/src/mod/endpoints/mod_sofia/sofia_reg.c Mon Apr 14 11:07:43 2008 @@ -264,19 +264,27 @@ } else { switch_snprintf(sql, sizeof(sql), "delete from sip_registrations where expires > 0"); } - sofia_glue_execute_sql(profile, &psql, SWITCH_FALSE); + + sofia_glue_actually_execute_sql(profile, SWITCH_FALSE, psql, NULL); + switch_safe_free(psql); + if (now) { switch_snprintf(sql, sizeof(sql), "delete from sip_authentication where expires > 0 and expires <= %ld", (long) now); } else { switch_snprintf(sql, sizeof(sql), "delete from sip_authentication where expires > 0"); } - sofia_glue_execute_sql(profile, &psql, SWITCH_FALSE); + + sofia_glue_actually_execute_sql(profile, SWITCH_FALSE, psql, NULL); + switch_safe_free(psql); + if (now) { switch_snprintf(sql, sizeof(sql), "delete from sip_subscriptions where expires > 0 and expires <= %ld", (long) now); } else { switch_snprintf(sql, sizeof(sql), "delete from sip_subscriptions where expires > 0"); } - sofia_glue_execute_sql(profile, &psql, SWITCH_FALSE); + + sofia_glue_actually_execute_sql(profile, SWITCH_FALSE, psql, NULL); + switch_safe_free(psql); if (now) { switch_snprintf(sql, sizeof(sql), "select * from sip_registrations where status like '%%NATHACK%%'");