Skip to content
Snippets Groups Projects
Commit 7e3d27dd authored by dmitriy.gerasimov's avatar dmitriy.gerasimov
Browse files

Merge branch 'feature-4593' into 'develop'

added command 'order recheck'

See merge request !247
parents 2b7c7486 e87f76c1
No related branches found
No related tags found
1 merge request!247added command 'order recheck'
Pipeline #6237 passed with stage
in 13 seconds
......@@ -101,7 +101,13 @@ int dap_chain_net_srv_init(dap_config_t * a_cfg)
" -price_unit <Price Unit> -price_token <Token ticker> [-node_addr <Node Address>] [-tx_cond <TX Cond Hash>] \\\n"
" [-expires <Unix time when expires>] [-ext <Extension with params>]\\\n"
" [-cert <cert name to sign order>]\\\n"
"\tOrder create\n" );
"\tOrder create\n"
"net_srv -net <chain net name> order static [save | delete]\\\n"
"\tStatic nodelist create/delete\n"
"net_srv -net <chain net name> order recheck\\\n"
"\tCheck the availability of orders\n"
);
s_load_all();
return 0;
......@@ -167,6 +173,28 @@ void dap_chain_net_srv_deinit(void)
}
static void* get_cdb_func(const char *func_name)
{
void *l_ref_func = NULL;
// find func from dynamic library
#if defined (DAP_OS_LINUX) && !defined (__ANDROID__)
const char * s_default_path_modules = "var/modules";
const char * l_cdb_so_name = "libcellframe-node-cdb.so";
char *l_lib_path = dap_strdup_printf("%s/%s/%s", g_sys_dir_path, s_default_path_modules, l_cdb_so_name);
void* l_cdb_handle = NULL;
l_cdb_handle = dlopen(l_lib_path, RTLD_NOW);
DAP_DELETE(l_lib_path);
if(!l_cdb_handle) {
log_it(L_ERROR, "Can't load %s module: %s", l_cdb_so_name, dlerror());
}
else {
l_ref_func = dlsym(l_cdb_handle, func_name);
dlclose(l_cdb_handle);
}
#endif
return l_ref_func;
}
/**
* @brief s_cli_net_srv
* @param argc
......@@ -518,6 +546,56 @@ static int s_cli_net_srv( int argc, char **argv, void *arg_func, char **a_str_re
dap_string_append_printf( l_string_ret, "Missed some required params\n");
ret=-5;
}
}else if( dap_strcmp( l_order_str, "recheck" ) == 0 ){
//int dap_chain_net_srv_vpn_cdb_server_list_check_orders(dap_chain_net_t *a_net);
int (*dap_chain_net_srv_vpn_cdb_server_list_check_orders)(dap_chain_net_t *a_net) = NULL;
*(void **) (&dap_chain_net_srv_vpn_cdb_server_list_check_orders) = get_cdb_func("dap_chain_net_srv_vpn_cdb_server_list_check_orders");
int l_init_res = dap_chain_net_srv_vpn_cdb_server_list_check_orders ? (*dap_chain_net_srv_vpn_cdb_server_list_check_orders)(l_net) : -5;
//int l_init_res = dap_chain_net_srv_vpn_cdb_server_list_check_orders(l_net);
ret = -10;
}else if( dap_strcmp( l_order_str, "static" ) == 0 ){
// find the subcommand directly after the 'order' command
int l_subcmd_save = dap_chain_node_cli_find_option_val(argv, l_order_arg_pos + 1, l_order_arg_pos + 2, "save", NULL);
int l_subcmd_del = dap_chain_node_cli_find_option_val(argv, l_order_arg_pos + 1, l_order_arg_pos + 2, "delete", NULL) |
dap_chain_node_cli_find_option_val(argv, l_order_arg_pos + 1, l_order_arg_pos + 2, "del", NULL);
int (*dap_chain_net_srv_vpn_cdb_server_list_static_create)(dap_chain_net_t *a_net) = NULL;
int (*dap_chain_net_srv_vpn_cdb_server_list_static_delete)(dap_chain_net_t *a_net) = NULL;
// find func from dinamic library
if(l_subcmd_save || l_subcmd_del) {
*(void **) (&dap_chain_net_srv_vpn_cdb_server_list_static_create) = get_cdb_func("dap_chain_net_srv_vpn_cdb_server_list_static_create");
*(void **) (&dap_chain_net_srv_vpn_cdb_server_list_static_delete) = get_cdb_func("dap_chain_net_srv_vpn_cdb_server_list_static_delete");
}
if(l_subcmd_save) {
int l_init_res = dap_chain_net_srv_vpn_cdb_server_list_static_create ? (*dap_chain_net_srv_vpn_cdb_server_list_static_create)(l_net) : -5;
//int l_init_res = dap_chain_net_srv_vpn_cdb_server_list_static_create(l_net);
if(l_init_res >= 0){
dap_string_append_printf(l_string_ret, "Static node list saved, %d orders in list\n", l_init_res);
ret = 0;
}
else{
dap_string_append_printf(l_string_ret, "Static node list not saved, error code %d\n", l_init_res);
ret = -11;
}
} else if(l_subcmd_del) {
int l_init_res = dap_chain_net_srv_vpn_cdb_server_list_static_delete ? (*dap_chain_net_srv_vpn_cdb_server_list_static_delete)(l_net) : -5;
//int l_init_res = dap_chain_net_srv_vpn_cdb_server_list_static_delete(l_net);
if(!l_init_res){
dap_string_append_printf(l_string_ret, "Static node list deleted\n");
ret = 0;
}
else if(l_init_res > 0){
dap_string_append_printf(l_string_ret, "Static node list already deleted\n");
ret = -12;
}
else
dap_string_append_printf(l_string_ret, "Static node list not deleted, error code %d\n", l_init_res);
} else {
dap_string_append(l_string_ret, "not found subcommand 'save' or 'delete'\n");
ret = -13;
}
} else {
dap_string_append_printf( l_string_ret, "Unknown subcommand \n");
ret=-3;
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment