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

Function b2bl_db_update

modules/b2b_logic/b2bl_db.c:852–914  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

850}
851
852void b2bl_db_update(b2bl_tuple_t* tuple)
853{
854 int ci;
855 int i;
856 cdb_dict_t cdb_pairs;
857 str *cdb_key;
858
859 if(!tuple->key) {
860 LM_ERR("No key found\n");
861 return;
862 }
863 LM_DBG("key= %.*s\n", tuple->key->len, tuple->key->s);
864
865 qvals[0].val.str_val = *tuple->key;
866
867 qvals[2].val.int_val = tuple->state;
868 qvals[3].val.int_val = tuple->lifetime - get_ticks() + (int)(unsigned long)time(NULL);
869 ci = 4;
870
871 for(i = 0; i< 3; i++)
872 {
873 if(!tuple->bridge_entities[i])
874 break;
875 qvals[ci++].val.int_val = tuple->bridge_entities[i]->type;
876 qvals[ci++].val.str_val = tuple->bridge_entities[i]->scenario_id;
877 qvals[ci++].val.str_val = tuple->bridge_entities[i]->to_uri;
878 qvals[ci++].val.str_val = tuple->bridge_entities[i]->from_uri;
879 qvals[ci++].val.str_val = tuple->bridge_entities[i]->key;
880 if (i<2)
881 qvals[ci++].val.str_val = tuple->bridge_entities[i]->out_sdp;
882 LM_DBG("UPDATE %.*s\n", qvals[ci-1].val.str_val.len, qvals[ci-1].val.str_val.s);
883 }
884
885 if (cdb_url.s) {
886 cdb_dict_init(&cdb_pairs);
887
888 cdb_key = get_b2bl_map_key(&qvals[0].val.str_val);
889 if (!cdb_key) {
890 LM_ERR("Failed to build map key\n");
891 return;
892 }
893
894 cdb_add_n_pairs(&cdb_pairs, n_query_update, ci - 1);
895
896 if (b2bl_cdbf.map_set(b2bl_cdb, cdb_key, NULL, &cdb_pairs) != 0)
897 LM_ERR("cachedb set failed\n");
898
899 pkg_free(cdb_key->s);
900 cdb_free_entries(&cdb_pairs, NULL);
901 } else {
902 if(b2bl_dbf.use_table(b2bl_db, &b2bl_dbtable)< 0)
903 {
904 LM_ERR("sql use table failed\n");
905 return;
906 }
907
908 if(b2bl_dbf.update(b2bl_db, qcols, 0, qvals, qcols+n_query_update,
909 qvals+n_query_update, 1, ci - n_query_update)< 0)

Callers 4

receive_entity_createFunction · 0.85
receive_entity_updateFunction · 0.85
b2b_logic_notify_replyFunction · 0.85
b2b_logic_notify_requestFunction · 0.85

Calls 5

get_ticksFunction · 0.85
cdb_dict_initFunction · 0.85
get_b2bl_map_keyFunction · 0.85
cdb_free_entriesFunction · 0.85
cdb_add_n_pairsFunction · 0.70

Tested by

no test coverage detected