소스 검색

siptrace: helper function for db insert

Daniel-Constantin Mierla 5 년 전
부모
커밋
bb2894a453
1개의 변경된 파일24개의 추가작업 그리고 33개의 파일을 삭제
  1. 24 33
      src/modules/siptrace/siptrace.c

+ 24 - 33
src/modules/siptrace/siptrace.c

@@ -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)) {
@@ -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);
@@ -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);
 	}