| 850 | } |
| 851 | |
| 852 | void 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) |
no test coverage detected