diff --git a/CMakeLists.txt b/CMakeLists.txt index 41419dd410d2ba5beb061ee59350ee7f72c60969..2f1d866a32341bfdede4d03d22ec63c44b3b3b72 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -2,7 +2,7 @@ project(cellframe-sdk C) cmake_minimum_required(VERSION 3.0) set(CMAKE_C_STANDARD 11) -set(CELLFRAME_SDK_NATIVE_VERSION "2.9-42") +set(CELLFRAME_SDK_NATIVE_VERSION "2.9-43") add_definitions ("-DCELLFRAME_SDK_VERSION=\"${CELLFRAME_SDK_NATIVE_VERSION}\"") set(DAPSDK_MODULES "") message("Cellframe modules: ${CELLFRAME_MODULES}") diff --git a/modules/chain/dap_chain_cell.c b/modules/chain/dap_chain_cell.c index 4f0076f2b4e548b565b266ffd3eaa7a9991cd3e2..20a31982a566d931fc801ba63cee952d8f1eedec 100644 --- a/modules/chain/dap_chain_cell.c +++ b/modules/chain/dap_chain_cell.c @@ -87,7 +87,7 @@ dap_chain_cell_t * dap_chain_cell_create_fill(dap_chain_t * a_chain, dap_chain_c dap_chain_cell_t * l_cell = DAP_NEW_Z(dap_chain_cell_t); l_cell->chain = a_chain; l_cell->id.uint64 = a_cell_id.uint64; - l_cell->file_storage_path = dap_strdup_printf("%0llx.dchaincell", l_cell->id.uint64); + l_cell->file_storage_path = dap_strdup_printf("%0"DAP_UINT64_FORMAT_x".dchaincell", l_cell->id.uint64); pthread_rwlock_wrlock(&a_chain->cell_rwlock); HASH_ADD(hh, a_chain->cells, id, sizeof(dap_chain_cell_id_t), l_cell); pthread_rwlock_unlock(&a_chain->cell_rwlock); @@ -98,7 +98,7 @@ dap_chain_cell_t * dap_chain_cell_create_fill2(dap_chain_t * a_chain, const char { dap_chain_cell_t * l_cell = DAP_NEW_Z(dap_chain_cell_t); l_cell->chain = a_chain; - sscanf(a_filename, "%0llx.dchaincell", &l_cell->id.uint64); + sscanf(a_filename, "%"DAP_UINT64_FORMAT_x".dchaincell", &l_cell->id.uint64); l_cell->file_storage_path = dap_strdup_printf(a_filename); pthread_rwlock_wrlock(&a_chain->cell_rwlock); HASH_ADD(hh, a_chain->cells, id, sizeof(dap_chain_cell_id_t), l_cell); diff --git a/modules/global-db/dap_chain_global_db_driver_sqlite.c b/modules/global-db/dap_chain_global_db_driver_sqlite.c index 9b90abff137a177a9727ab6da13d1a65a2bdc5c9..07b4488dabf2ce836c0fa9b66b47ab56c3d121f1 100644 --- a/modules/global-db/dap_chain_global_db_driver_sqlite.c +++ b/modules/global-db/dap_chain_global_db_driver_sqlite.c @@ -564,6 +564,7 @@ int dap_db_driver_sqlite_apply_store_obj(dap_store_obj_t *a_store_obj) return -1; char *l_query = NULL; char *l_error_message = NULL; + char *l_table_name = dap_db_driver_sqlite_make_table_name(a_store_obj->group); if(a_store_obj->type == 'a') { if(!a_store_obj->key || !a_store_obj->value || !a_store_obj->value_len) return -1; @@ -573,10 +574,8 @@ int dap_db_driver_sqlite_apply_store_obj(dap_store_obj_t *a_store_obj) char *l_blob_hash = "";//dap_db_driver_get_string_from_blob((uint8_t*) &l_hash, sizeof(dap_chain_hash_fast_t)); char *l_blob_value = dap_db_driver_get_string_from_blob(a_store_obj->value, (int)a_store_obj->value_len); //add one record - char *table_name = dap_db_driver_sqlite_make_table_name(a_store_obj->group); l_query = sqlite3_mprintf("insert into '%s' values(NULL, '%s', x'%s', '%lld', x'%s')", - table_name, a_store_obj->key, l_blob_hash, a_store_obj->timestamp, l_blob_value); - DAP_DELETE(table_name); + l_table_name, a_store_obj->key, l_blob_hash, a_store_obj->timestamp, l_blob_value); //dap_db_driver_sqlite_free(l_blob_hash); dap_db_driver_sqlite_free(l_blob_value); } @@ -584,12 +583,10 @@ int dap_db_driver_sqlite_apply_store_obj(dap_store_obj_t *a_store_obj) //delete one record if(a_store_obj->key) l_query = sqlite3_mprintf("delete from '%s' where key = '%s'", - a_store_obj->group, a_store_obj->key); + l_table_name, a_store_obj->key); // remove all group - else{ - char * l_table_name = dap_db_driver_sqlite_make_table_name(a_store_obj->group); + else { l_query = sqlite3_mprintf("drop table if exists '%s'", l_table_name); - DAP_DELETE(l_table_name); } } else { @@ -608,9 +605,7 @@ int dap_db_driver_sqlite_apply_store_obj(dap_store_obj_t *a_store_obj) dap_db_driver_sqlite_free(l_error_message); l_error_message = NULL; // create table - char *table_name = dap_db_driver_sqlite_make_table_name(a_store_obj->group); - dap_db_driver_sqlite_create_group_table(table_name); - DAP_DELETE(table_name); + dap_db_driver_sqlite_create_group_table(l_table_name); // repeat request l_ret = dap_db_driver_sqlite_exec(s_db, l_query, &l_error_message); @@ -619,11 +614,9 @@ int dap_db_driver_sqlite_apply_store_obj(dap_store_obj_t *a_store_obj) if(l_ret == SQLITE_CONSTRAINT) { dap_db_driver_sqlite_free(l_error_message); l_error_message = NULL; - char *table_name = dap_db_driver_sqlite_make_table_name(a_store_obj->group); //delete exist record - char *l_query_del = sqlite3_mprintf("delete from '%s' where key = '%s'", table_name, a_store_obj->key); + char *l_query_del = sqlite3_mprintf("delete from '%s' where key = '%s'", l_table_name, a_store_obj->key); l_ret = dap_db_driver_sqlite_exec(s_db, l_query_del, &l_error_message); - DAP_DELETE(table_name); dap_db_driver_sqlite_free(l_query_del); if(l_ret != SQLITE_OK) { log_it(L_INFO, "Entry with the same key is already present and can't delete, %s", l_error_message); @@ -641,6 +634,7 @@ int dap_db_driver_sqlite_apply_store_obj(dap_store_obj_t *a_store_obj) l_ret = -1; } dap_db_driver_sqlite_free(l_query); + DAP_DELETE(l_table_name); return l_ret; }