support multiple subscriptions for sla goodies

git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@7793 d0543943-73ff-0310-b7d9-9358b9ac24b2
This commit is contained in:
Brian West committed 2008-03-05 20:31:18 +00:00
1 parent c2d18621e3
commit 26d197cf16
6 files changed
+97 -96

No files matched your search

+20 -13
View File
@@ -2443,27 +2443,34 @@ void sofia_glue_sql_close(sofia_profile_t *profile)
}
void sofia_glue_execute_sql(sofia_profile_t *profile, switch_bool_t master, char *sql, switch_mutex_t *mutex)
void sofia_glue_execute_sql(sofia_profile_t *profile, char **sqlp, switch_bool_t dyn)
{
switch_status_t status = SWITCH_STATUS_FALSE;
sofia_sql_job_t *job = NULL;
char *d_sql = NULL, *sql;
switch_assert(sqlp && *sqlp);
sql = *sqlp;
if (profile->sql_queue) {
switch_zmalloc(job, sizeof(*job));
if (dyn) {
d_sql = sql;
} else {
d_sql = strdup(sql);
}
job->sql = strdup(sql);
switch_assert(job->sql);
job->master = master;
status = switch_queue_trypush(profile->sql_queue, job);
switch_assert(d_sql);
status = switch_queue_trypush(profile->sql_queue, d_sql);
}
if (status != SWITCH_STATUS_SUCCESS) {
if (job) {
free(job->sql);
free(job);
if (status == SWITCH_STATUS_SUCCESS) {
if (dyn) {
*sqlp = NULL;
}
sofia_glue_actually_execute_sql(profile, master, sql, mutex);
} else {
if (!dyn) {
switch_safe_free(d_sql);
}
sofia_glue_actually_execute_sql(profile, SWITCH_FALSE, sql, profile->ireg_mutex);
}
}