Skip to content

Commit

Permalink
siptrace: helper function for db insert
Browse files Browse the repository at this point in the history
  • Loading branch information
miconda committed Apr 10, 2020
1 parent 661fc01 commit bb2894a
Showing 1 changed file with 24 additions and 33 deletions.
57 changes: 24 additions & 33 deletions src/modules/siptrace/siptrace.c
Expand Up @@ -567,6 +567,24 @@ static int sip_trace_store(siptrace_data_t *sto, dest_info_t *dst,
return ret;
}

static int sip_trace_insert_db(db_key_t *db_keys, db_val_t *db_vals,
int db_nkeys, char *dtext)
{
LM_DBG("storing info - %s\n", dtext);
if(trace_delayed != 0 && db_funcs.insert_delayed != NULL) {
if(db_funcs.insert_delayed(db_con, db_keys, db_vals, db_nkeys) < 0) {
LM_ERR("error storing trace - %s\n", dtext);
return -1;
}
} else {
if(db_funcs.insert(db_con, db_keys, db_vals, NR_KEYS) < 0) {
LM_ERR("error storing trace - %s\n", dtext);
return -1;
}
}
return 0;
}

static int sip_trace_store_db(siptrace_data_t *sto)
{
if((trace_to_database == 0) && ((_siptrace_mode & SIPTRACE_MODE_DB) == 0)) {
Expand Down Expand Up @@ -646,17 +664,8 @@ static int sip_trace_store_db(siptrace_data_t *sto)
db_vals[9].val.str_val.s = "";
db_vals[9].val.str_val.len = 0;

LM_DBG("storing info...\n");
if(trace_delayed != 0 && db_funcs.insert_delayed != NULL) {
if(db_funcs.insert_delayed(db_con, db_keys, db_vals, NR_KEYS) < 0) {
LM_ERR("error storing trace\n");
goto error;
}
} else {
if(db_funcs.insert(db_con, db_keys, db_vals, NR_KEYS) < 0) {
LM_ERR("error storing trace\n");
goto error;
}
if(sip_trace_insert_db(db_keys, db_vals, NR_KEYS, "no user") < 0) {
goto error;
}
#ifdef STATISTICS
update_stat(sto->stat, 1);
Expand All @@ -668,34 +677,16 @@ static int sip_trace_store_db(siptrace_data_t *sto)

db_vals[9].val.str_val = sto->avp_value.s;

LM_DBG("storing info...\n");
if(trace_delayed != 0 && db_funcs.insert_delayed != NULL) {
if(db_funcs.insert_delayed(db_con, db_keys, db_vals, NR_KEYS) < 0) {
LM_ERR("error storing trace\n");
goto error;
}
} else {
if(db_funcs.insert(db_con, db_keys, db_vals, NR_KEYS) < 0) {
LM_ERR("error storing trace\n");
goto error;
}
if(sip_trace_insert_db(db_keys, db_vals, NR_KEYS, "first user") < 0) {
goto error;
}

sto->avp = search_next_avp(&sto->state, &sto->avp_value);
while(sto->avp != NULL) {
db_vals[9].val.str_val = sto->avp_value.s;

LM_DBG("storing info...\n");
if(trace_delayed != 0 && db_funcs.insert_delayed != NULL) {
if(db_funcs.insert_delayed(db_con, db_keys, db_vals, NR_KEYS) < 0) {
LM_ERR("error storing trace\n");
goto error;
}
} else {
if(db_funcs.insert(db_con, db_keys, db_vals, NR_KEYS) < 0) {
LM_ERR("error storing trace\n");
goto error;
}
if(sip_trace_insert_db(db_keys, db_vals, NR_KEYS, "extra user") < 0) {
goto error;
}
sto->avp = search_next_avp(&sto->state, &sto->avp_value);
}
Expand Down

0 comments on commit bb2894a

Please sign in to comment.