From c3402e5cb78345c1b5acb5a4df72b107bef33d57 Mon Sep 17 00:00:00 2001 From: "papizh.konstantin" <papizh.konstantin@demlabs.net> Date: Tue, 26 Jan 2021 13:35:52 +0000 Subject: [PATCH] Feat 4748 1 --- modules/global-db/dap_chain_global_db.c | 14 +++----------- modules/global-db/dap_chain_global_db_driver.c | 8 +++++--- modules/net/dap_chain_node_cli.c | 13 +++++++------ modules/net/dap_chain_node_cli_cmd.c | 8 ++------ modules/net/include/dap_chain_node_cli_cmd.h | 1 + 5 files changed, 18 insertions(+), 26 deletions(-) diff --git a/modules/global-db/dap_chain_global_db.c b/modules/global-db/dap_chain_global_db.c index e6ab5b05fc..afcfddce19 100644 --- a/modules/global-db/dap_chain_global_db.c +++ b/modules/global-db/dap_chain_global_db.c @@ -85,12 +85,7 @@ typedef struct history_extra_group_item // Tacked group callbacks static history_group_item_t * s_history_group_items = NULL; -static char *s_storage_path = NULL; static history_extra_group_item_t * s_history_extra_group_items = NULL; -#ifdef DAP_OS_UNIX -static int cmd_gdb_import(int argc, char ** argv, void *arg_func, char ** a_str_reply); -static int s_command_gdb_export(int argc, char ** argv, void *arg_func, char ** a_str_reply); -#endif char * extract_group_prefix(const char * a_group); /** @@ -243,17 +238,14 @@ void dap_chain_global_db_objs_delete(dap_global_db_obj_t *objs, size_t a_count) */ int dap_chain_global_db_init(dap_config_t * g_config) { - s_storage_path= dap_strdup( - dap_config_get_item_str(g_config, "resources", "dap_global_db_path") ); + const char *l_storage_path = dap_config_get_item_str(g_config, "resources", "dap_global_db_path"); //const char *l_driver_name = dap_config_get_item_str_default(g_config, "resources", "dap_global_db_driver", "sqlite"); const char *l_driver_name = dap_config_get_item_str_default(g_config, "resources", "dap_global_db_driver", "cdb"); lock(); - int res = dap_db_driver_init(l_driver_name, s_storage_path); + int res = dap_db_driver_init(l_driver_name, l_storage_path); unlock(); if( res != 0 ) - log_it(L_CRITICAL, "Hadn't initialized db driver \"%s\" on path \"%s\"", l_driver_name, s_storage_path ); - - + log_it(L_CRITICAL, "Hadn't initialized db driver \"%s\" on path \"%s\"", l_driver_name, l_storage_path); return res; } diff --git a/modules/global-db/dap_chain_global_db_driver.c b/modules/global-db/dap_chain_global_db_driver.c index 0c9309cee7..7aa26e2006 100644 --- a/modules/global-db/dap_chain_global_db_driver.c +++ b/modules/global-db/dap_chain_global_db_driver.c @@ -81,16 +81,18 @@ int dap_db_driver_init(const char *a_driver_name, const char *a_filename_db) if(s_used_driver) dap_db_driver_deinit(); s_used_driver = dap_strdup(a_driver_name); + char l_db_path_ext[strlen(a_driver_name) + strlen(a_filename_db) + 3]; + dap_snprintf(l_db_path_ext, sizeof(l_db_path_ext), "/%s.%s", a_filename_db, a_driver_name); memset(&s_drv_callback, 0, sizeof(dap_db_driver_callbacks_t)); if(!dap_strcmp(s_used_driver, "ldb")) l_ret = -1; else if(!dap_strcmp(s_used_driver, "sqlite")) - l_ret = dap_db_driver_sqlite_init(a_filename_db, &s_drv_callback); + l_ret = dap_db_driver_sqlite_init(l_db_path_ext, &s_drv_callback); else if(!dap_strcmp(s_used_driver, "cdb")) - l_ret = dap_db_driver_cdb_init(a_filename_db, &s_drv_callback); + l_ret = dap_db_driver_cdb_init(l_db_path_ext, &s_drv_callback); #ifdef DAP_CHAIN_GDB_ENGINE_MDBX else if(!dap_strcmp(s_used_driver, "mdbx")) - l_ret = dap_db_driver_mdbx_init(a_filename_db, &s_drv_callback); + l_ret = dap_db_driver_mdbx_init(l_db_path_ext, &s_drv_callback); #endif else log_it(L_ERROR, "Unknown global_db driver \"%s\"", a_driver_name); diff --git a/modules/net/dap_chain_node_cli.c b/modules/net/dap_chain_node_cli.c index d1018f5ebf..4595af5209 100644 --- a/modules/net/dap_chain_node_cli.c +++ b/modules/net/dap_chain_node_cli.c @@ -1032,13 +1032,14 @@ int dap_chain_node_cli_init(dap_config_t * g_config) dap_chain_node_cli_cmd_item_create ("exit", com_exit, NULL, "Stop application and exit", "exit\n" ); -#ifdef DAP_OS_UNIX - // Export GDB to JSON - dap_chain_node_cli_cmd_item_create("gdb_export", cmd_gdb_export, NULL, "GDB export to file", "GDB export to file"); + // Export GDB to JSON + dap_chain_node_cli_cmd_item_create("gdb_export", cmd_gdb_export, NULL, "Export gdb to JSON", + "gdb_export filename <filename without extension>"); + + //Import GDB from JSON + dap_chain_node_cli_cmd_item_create("gdb_import", cmd_gdb_import, NULL, "Import gdb from JSON", + "gdb_import filename <filename without extension>"); - //Import GDB from JSON - dap_chain_node_cli_cmd_item_create("gdb_import", cmd_gdb_import, NULL, "GDB import from file", "GDB import from file"); -#endif // create thread for waiting of clients pthread_t l_thread_id; diff --git a/modules/net/dap_chain_node_cli_cmd.c b/modules/net/dap_chain_node_cli_cmd.c index 3a01460cc3..688a9ba509 100644 --- a/modules/net/dap_chain_node_cli_cmd.c +++ b/modules/net/dap_chain_node_cli_cmd.c @@ -4030,8 +4030,6 @@ int com_print_log(int argc, char ** argv, void *arg_func, char **str_reply) return 0; } - -#ifdef DAP_OS_UNIX /** * @brief cmd_gdb_export * @param argc @@ -4059,7 +4057,7 @@ int cmd_gdb_export(int argc, char ** argv, void *arg_func, char ** a_str_reply) } char l_path[strlen(l_db_path) + strlen(l_filename) + 12]; memset(l_path, '\0', sizeof(l_path)); - dap_snprintf(l_path, sizeof(l_path), "%s/../%s.json", l_db_path, l_filename); + dap_snprintf(l_path, sizeof(l_path), "%s/%s.json", l_db_path, l_filename); /*FILE *l_json_file = fopen(l_path, "a"); if (!l_json_file) { log_it(L_ERROR, "Can't open file %s", l_path); @@ -4136,7 +4134,7 @@ int cmd_gdb_import(int argc, char ** argv, void *arg_func, char ** a_str_reply) const char *l_db_path = dap_config_get_item_str(g_config, "resources", "dap_global_db_path"); char l_path[strlen(l_db_path) + strlen(l_filename) + 12]; memset(l_path, '\0', sizeof(l_path)); - dap_snprintf(l_path, sizeof(l_path), "%s/../%s.json", l_db_path, l_filename); + dap_snprintf(l_path, sizeof(l_path), "%s/%s.json", l_db_path, l_filename); struct json_object *l_json = json_object_from_file(l_path); if (!l_json) { #if JSON_C_MINOR_VERSION<15 @@ -4188,5 +4186,3 @@ int cmd_gdb_import(int argc, char ** argv, void *arg_func, char ** a_str_reply) json_object_put(l_json); return 0; } - -#endif diff --git a/modules/net/include/dap_chain_node_cli_cmd.h b/modules/net/include/dap_chain_node_cli_cmd.h index 7718569ecc..2e2b11b845 100644 --- a/modules/net/include/dap_chain_node_cli_cmd.h +++ b/modules/net/include/dap_chain_node_cli_cmd.h @@ -133,6 +133,7 @@ int com_print_log(int argc, char ** argv, void *arg_func, char **str_reply); int com_stats(int argc, char ** argv, void *arg_func, char **str_reply); int com_exit(int argc, char ** argv, void *arg_func, char **str_reply); + int cmd_gdb_import(int argc, char ** argv, void *arg_func, char ** a_str_reply); int cmd_gdb_export(int argc, char ** argv, void *arg_func, char ** a_str_reply); -- GitLab