MCPcopy Create free account
hub / github.com/OpenSIPS/opensips / b2be_cdb_insert

Function b2be_cdb_insert

modules/b2b_entities/b2be_db.c:189–237  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

187}
188
189static int b2be_cdb_insert(int type, b2b_dlg_t* dlg, int cols_no)
190{
191 cdb_dict_t cdb_pairs;
192 str *cdb_key, *cdb_subkey;
193 int i;
194 int rc;
195
196 cdb_dict_init(&cdb_pairs);
197
198 cdb_key = get_b2be_map_key(type, &dlg->tag[0], &dlg->tag[1], &dlg->callid);
199 if (!cdb_key) {
200 LM_ERR("Failed to build map key\n");
201 return -1;
202 }
203
204 cdb_add_n_pairs(&cdb_pairs, 0, cols_no - 1);
205
206 if(!dlg->legs) {
207 for(i = cols_no; i < cols_no + 4; i++)
208 qvals[i].nul = 1;
209
210 cdb_add_n_pairs(&cdb_pairs, cols_no, cols_no + 3);
211
212 for(i = cols_no; i < cols_no + 4; i++)
213 qvals[i].nul = 0;
214 }
215
216 if (qvals[12].val.str_val.s) {
217 cdb_subkey = get_b2be_map_subkey(&qvals[12].val.str_val);
218 if (!cdb_subkey) {
219 LM_ERR("Failed to build map subkey\n");
220 pkg_free(cdb_key->s);
221 cdb_free_entries(&cdb_pairs, NULL);
222 return -1;
223 }
224 } else {
225 cdb_subkey = NULL;
226 }
227
228 if ((rc = b2be_cdbf.map_set(b2be_cdb, cdb_key, cdb_subkey, &cdb_pairs)))
229 LM_ERR("cachedb set failed\n");
230
231 if (cdb_subkey)
232 pkg_free(cdb_subkey->s);
233 pkg_free(cdb_key->s);
234 cdb_free_entries(&cdb_pairs, NULL);
235
236 return rc;
237}
238
239int b2be_db_insert(b2b_dlg_t* dlg, int type)
240{

Callers 2

b2be_db_insertFunction · 0.85
store_b2b_dlgFunction · 0.85

Calls 5

cdb_dict_initFunction · 0.85
get_b2be_map_keyFunction · 0.85
get_b2be_map_subkeyFunction · 0.85
cdb_free_entriesFunction · 0.85
cdb_add_n_pairsFunction · 0.70

Tested by

no test coverage detected