Skip to content
Snippets Groups Projects
Commit f83b32c4 authored by Roman Khlopkov's avatar Roman Khlopkov 🔜
Browse files

Merge branch 'feature-15252_d' into 'develop'

feature-15252_d

See merge request !2091
parents 1556b4b4 0e271268
No related branches found
No related tags found
Loading
Pipeline #51980 canceled with stage
in 12 minutes and 15 seconds
Subproject commit 6184e49af5e0e2536696eab1a520ad3536e40cc7 Subproject commit 89400bc2340111a11ed7895a30983dffc875d488
...@@ -543,28 +543,36 @@ void dap_chain_net_balancer_request(void *a_arg) ...@@ -543,28 +543,36 @@ void dap_chain_net_balancer_request(void *a_arg)
* @param a_net - net to report * @param a_net - net to report
* @return if error NULL, other - report * @return if error NULL, other - report
*/ */
dap_string_t *dap_chain_net_balancer_get_node_str(dap_chain_net_t *a_net) json_object *dap_chain_net_balancer_get_node_str(dap_chain_net_t *a_net)
{ {
// sanity check // sanity check
dap_return_val_if_pass(!a_net, NULL); dap_return_val_if_pass(!a_net, NULL);
// func work // func work
json_object *l_jobj_out = json_object_new_object();
if (!l_jobj_out) return dap_json_rpc_allocation_put(l_jobj_out);
json_object *l_jobj_list_array = json_object_new_array();
if (!l_jobj_list_array) return dap_json_rpc_allocation_put(l_jobj_out);
json_object_object_add(l_jobj_out, "links_list", l_jobj_list_array);
dap_net_links_t *l_links_info_list = s_get_node_addrs(a_net, 0, NULL, false); // TODO dap_net_links_t *l_links_info_list = s_get_node_addrs(a_net, 0, NULL, false); // TODO
dap_string_t *l_ret = dap_string_new(
"-----------------------------------------------------------------\n"
"|\t\tNode addr\t|\tHost addr\t\t|\n"
"--Send in balancer http response---------------------------------\n");
uint64_t l_node_num = l_links_info_list ? l_links_info_list->count_node : 0; uint64_t l_node_num = l_links_info_list ? l_links_info_list->count_node : 0;
for (uint64_t i = 0; i < l_node_num; ++i) { for (uint64_t i = 0; i < l_node_num; ++i) {
dap_link_info_t *l_link_info = (dap_link_info_t *)l_links_info_list->nodes_info + i; dap_link_info_t *l_link_info = (dap_link_info_t *)l_links_info_list->nodes_info + i;
dap_string_append_printf(l_ret, "|\t"NODE_ADDR_FP_STR"\t|\t%-16s:%u\t|\n", json_object *l_jobj_link = json_object_new_object();
NODE_ADDR_FP_ARGS_S(l_link_info->node_addr), if (!l_jobj_link) return dap_json_rpc_allocation_put(l_jobj_out);
l_link_info->uplink_addr, l_link_info->uplink_port); char * l_node_addr = dap_strdup_printf(""NODE_ADDR_FP_STR"",NODE_ADDR_FP_ARGS_S(l_link_info->node_addr));
json_object_object_add(l_jobj_link, "node_addr", json_object_new_string(l_node_addr));
DAP_DELETE(l_node_addr);
char * l_uplink_addr = dap_strdup_printf("%-16s", l_link_info->uplink_addr);
json_object_object_add(l_jobj_link, "host_addr", json_object_new_string(l_uplink_addr));
DAP_DELETE(l_uplink_addr);
json_object_object_add(l_jobj_link, "port", json_object_new_uint64(l_link_info->uplink_port));
if(i + 1 == s_max_links_response_count && i + 1 < l_node_num) { if(i + 1 == s_max_links_response_count && i + 1 < l_node_num) {
dap_string_append_printf(l_ret, "--Not send in http balancer response-----------------------------\n"); json_object_object_add(l_jobj_link, "status", json_object_new_string("Not send in http balancer response"));
} }
json_object_array_add(l_jobj_list_array, l_jobj_link);
} }
dap_string_prepend_printf(l_ret, "Balancer link list for total %" DAP_UINT64_FORMAT_U " records:\n", l_node_num); json_object_object_add(l_jobj_out, "links total", json_object_new_uint64(l_node_num));
dap_string_append(l_ret, "-----------------------------------------------------------------\n");
DAP_DELETE(l_links_info_list); DAP_DELETE(l_links_info_list);
return l_ret; return l_jobj_out;
} }
...@@ -65,7 +65,7 @@ void dap_chain_net_balancer_deinit(); ...@@ -65,7 +65,7 @@ void dap_chain_net_balancer_deinit();
void dap_chain_net_balancer_http_issue_link(dap_http_simple_t *a_http_simple, void *a_arg); void dap_chain_net_balancer_http_issue_link(dap_http_simple_t *a_http_simple, void *a_arg);
dap_link_info_t *dap_chain_net_balancer_dns_issue_link(const char *a_net_name); dap_link_info_t *dap_chain_net_balancer_dns_issue_link(const char *a_net_name);
int dap_chain_net_balancer_handshake(dap_chain_node_info_t *a_node_info, dap_chain_net_t * a_net); int dap_chain_net_balancer_handshake(dap_chain_node_info_t *a_node_info, dap_chain_net_t * a_net);
dap_string_t *dap_chain_net_balancer_get_node_str(dap_chain_net_t *a_net); json_object *dap_chain_net_balancer_get_node_str(dap_chain_net_t *a_net);
void dap_chain_net_balancer_request(void *a_arg); void dap_chain_net_balancer_request(void *a_arg);
#ifdef __cplusplus #ifdef __cplusplus
......
This diff is collapsed.
...@@ -433,6 +433,124 @@ int com_tx_cond_unspent_find(int a_argc, char **a_argv, void **reply); ...@@ -433,6 +433,124 @@ int com_tx_cond_unspent_find(int a_argc, char **a_argv, void **reply);
*/ */
int com_tx_verify(int a_argc, char ** a_argv, void **a_str_reply); int com_tx_verify(int a_argc, char ** a_argv, void **a_str_reply);
typedef enum s_com_tx_node_err{
DAP_CHAIN_NODE_CLI_COM_NODE_OK = 0,
DAP_CHAIN_NODE_CLI_COM_NODE_COMMAND_NOT_RECOGNIZED_ERR,
DAP_CHAIN_NODE_CLI_COM_NODE_CANT_PARSE_NODE_ADDR_ERR,
DAP_CHAIN_NODE_CLI_COM_NODE_CANT_PARSE_HOST_PORT_ERR,
DAP_CHAIN_NODE_CLI_COM_NODE_UNRECOGNISED_SUB_ERR,
DAP_CHAIN_NODE_CLI_COM_NODE_MEMORY_ALLOC_ERR,
DAP_CHAIN_NODE_CLI_COM_NODE_ADD_HAVE_NO_ACCESS_RIGHTS_ERR,
DAP_CHAIN_NODE_CLI_COM_NODE_ADD_CANT_PARSE_HOST_STRING_ERR,
DAP_CHAIN_NODE_CLI_COM_NODE_ADD_CANT_UNSPECIFIED_PORT_ERR,
DAP_CHAIN_NODE_CLI_COM_NODE_ADD_CANT_ADDED_NOT_ERR,
DAP_CHAIN_NODE_CLI_COM_NODE_ADD_CANT_INVALID_SERVER_ERR,
DAP_CHAIN_NODE_CLI_COM_NODE_ADD_NO_SERVER_ERR,
DAP_CHAIN_NODE_CLI_COM_NODE_ADD_DIDNT_ADD_ADDRESS_ERR,
DAP_CHAIN_NODE_CLI_COM_NODE_ADD_CANT_CALCULATE_HASH_ERR,
DAP_CHAIN_NODE_CLI_COM_NODE_ADD_CANT_DO_HANDSHAKE_ERR,
DAP_CHAIN_NODE_CLI_COM_NODE_ADD_ALREADY_EXISTS_ERR,
DAP_CHAIN_NODE_CLI_COM_NODE_ADD_CANT_PROCESS_NODE_LIST_ERR,
DAP_CHAIN_NODE_CLI_COM_NODE_ADD_CANT_PROCESS_REQUEST_ERR,
DAP_CHAIN_NODE_CLI_COM_NODE_DELL_NO_ACCESS_RIGHTS_ERR,
DAP_CHAIN_NODE_CLI_COM_NODE_DELL_CANT_DEL_NODE_ERR,
DAP_CHAIN_NODE_CLI_COM_NODE_DELL_CANT_PROCESS_REQUEST_ERR,
DAP_CHAIN_NODE_CLI_COM_NODE_LIST_NODE_RECORD_CORRUPTED_ERR,
DAP_CHAIN_NODE_CLI_COM_NODE_LIST_NO_RECORDS_ERR,
DAP_CHAIN_NODE_CLI_COM_NODE_ALIAS_ADDR_NOT_FOUND_ERR,
DAP_CHAIN_NODE_CLI_COM_NODE_ALIAS_ALIAS_NOT_FOUND_ERR,
DAP_CHAIN_NODE_CLI_COM_NODE_CONNECT_NOT_IMPLEMENTED_ERR,
DAP_CHAIN_NODE_CLI_COM_NODE_HANDSHAKE_NO_FOUND_ADDR_ERR,
DAP_CHAIN_NODE_CLI_COM_NODE_HANDSHAKE_CANT_CONNECT_ERR,
DAP_CHAIN_NODE_CLI_COM_NODE_HANDSHAKE_NO_RESPONSE_ERR,
DAP_CHAIN_NODE_CLI_COM_NODE_CONNECTION_NOT_FOUND_LINKS_ERR,
DAP_CHAIN_NODE_CLI_COM_NODE_CONNECTION_CANT_PARSE_CLUSTER_ERR,
DAP_CHAIN_NODE_CLI_COM_NODE_CONNECTION_NOT_FOUND_CLUSTER_ID_ERR,
DAP_CHAIN_NODE_CLI_COM_NODE_BAN_NETWORK_DOESNOT_SUPPORT_ERR,
DAP_CHAIN_NODE_CLI_COM_NODE_BAN_INVALID_PARAMETER_ERR,
DAP_CHAIN_NODE_CLI_COM_NODE_BAN_REQUIRES_PARAMETER_ERR,
DAP_CHAIN_NODE_CLI_COM_NODE_BAN_LEAST_ONE_VALID_CERT_ERR,
DAP_CHAIN_NODE_CLI_COM_NODE_BAN_CANT_CONVERT_ADDR_VALUE_ERR,
DAP_CHAIN_NODE_CLI_COM_NODE_BAN_HOST_OPTION_WASNOT_SPECIFIED_ERR,
DAP_CHAIN_NODE_CLI_COM_NODE_BAN_DECREE_CREATION_FAILED_ERR,
DAP_CHAIN_NODE_CLI_COM_NODE_UNBAN_NETWORK_DOES_NOT_SUPPORT_ERR,
DAP_CHAIN_NODE_CLI_COM_NODE_UNBAN_INVALID_PRAMETER_ERR,
DAP_CHAIN_NODE_CLI_COM_NODE_UNBAN_REQUIRES_PARAMETER_CERT_ERR,
DAP_CHAIN_NODE_CLI_COM_NODE_UNBAN_LEAST_ONE_VALID_CERT_ERR,
DAP_CHAIN_NODE_CLI_COM_NODE_UNBAN_DECREE_CREATION_FAILED_ERR
} s_com_tx_node_err_t;
typedef enum s_com_decree_err{
DAP_CHAIN_NODE_CLI_COM_DECREE_OK = 0,
DAP_CHAIN_NODE_CLI_COM_DECREE_INVALID_PARAM_ERR,
DAP_CHAIN_NODE_CLI_COM_DECREE_NOT_FOUND_COM_ERR,
DAP_CHAIN_NODE_CLI_COM_DECREE_REQUIRES_PARAM_NET_ERR,
DAP_CHAIN_NODE_CLI_COM_DECREE_REQUIRES_PARAM_CERT_ERR,
DAP_CHAIN_NODE_CLI_COM_DECREE_MEMORY_ALLOC_ERR,
DAP_CHAIN_NODE_CLI_COM_DECREE_CREATE_LEAST_VALID_CERT_ERR,
DAP_CHAIN_NODE_CLI_COM_DECREE_CREATE_INVALID_CHAIN_PARAM_ERR,
DAP_CHAIN_NODE_CLI_COM_DECREE_CREATE_CHAIN_DONT_SUPPORT_ERR,
DAP_CHAIN_NODE_CLI_COM_DECREE_CREATE_CANT_FIND_CHAIN_ERR,
DAP_CHAIN_NODE_CLI_COM_DECREE_CREATE_REQUIRES_PARAM_DECREE_CHAIN_ERR,
DAP_CHAIN_NODE_CLI_COM_DECREE_CREATE_NOT_FEE_PARAM_CHAIN_ERR,
DAP_CHAIN_NODE_CLI_COM_DECREE_CREATE_TSD_MEM_ALLOC_ERR,
DAP_CHAIN_NODE_CLI_COM_DECREE_CREATE_CERT_NUMBER_ERR,
DAP_CHAIN_NODE_CLI_COM_DECREE_CREATE_CERT_NO_PUB_KEY_ERR,
DAP_CHAIN_NODE_CLI_COM_DECREE_CREATE_NO_OWNERS_ERR,
DAP_CHAIN_NODE_CLI_COM_DECREE_CREATE_TO_MANY_OWNERS_ERR,
DAP_CHAIN_NODE_CLI_COM_DECREE_CREATE_MEM_ALOC_ERR,
DAP_CHAIN_NODE_CLI_COM_DECREE_CREATE_SUBCOM_ERR,
DAP_CHAIN_NODE_CLI_COM_DECREE_CREATE_NOT_CHAIN_PARAM_ERR,
DAP_CHAIN_NODE_CLI_COM_DECREE_CREATE_NOT_FOUND_DECREE_ERR,
DAP_CHAIN_NODE_CLI_COM_DECREE_CREATE_NO_CERT_ERR,
DAP_CHAIN_NODE_CLI_COM_DECREE_SIGN_NO_VALID_CERT_ERR,
DAP_CHAIN_NODE_CLI_COM_DECREE_SIGN_INVALID_CHAIN_PARAM_ERR,
DAP_CHAIN_NODE_CLI_COM_DECREE_SIGN_CHAIN_DONT_SUPPORT_ERR,
DAP_CHAIN_NODE_CLI_COM_DECREE_SIGN_CANT_FIND_CHAIN_ERR,
DAP_CHAIN_NODE_CLI_COM_DECREE_SIGN_CREATION_ERR,
DAP_CHAIN_NODE_CLI_COM_DECREE_SIGN_WRONG_DATUM_TYPE_ERR,
DAP_CHAIN_NODE_CLI_COM_DECREE_SIGN_CANT_FIND_DATUM_ERR,
DAP_CHAIN_NODE_CLI_COM_DECREE_SIGN_NEED_SIGN_ERR,
DAP_CHAIN_NODE_CLI_COM_DECREE_ANCHOR_INVALID_CHAIN_PARAM_ERR,
DAP_CHAIN_NODE_CLI_COM_DECREE_ANCHOR_CHAIN_DONT_SUPPORT_ERR,
DAP_CHAIN_NODE_CLI_COM_DECREE_ANCHOR_CANT_FIND_CHAIN_ERR,
DAP_CHAIN_NODE_CLI_COM_DECREE_ANCHOR_NOT_DATUM_PARAM_ERR,
DAP_CHAIN_NODE_CLI_COM_DECREE_ANCHOR_MEMORY_ERR,
DAP_CHAIN_NODE_CLI_COM_DECREE_ANCHOR_CERT_SIGN_ERR,
DAP_CHAIN_NODE_CLI_COM_DECREE_FIND_REQ_PARAM_HASH_ERR,
DAP_CHAIN_NODE_CLI_COM_DECREE_FIND_REQ_PARAM_VALUE_ERR,
DAP_CHAIN_NODE_CLI_COM_DECREE_HASH_ERR,
DAP_CHAIN_NODE_CLI_COM_DECREE_NET_PARAM_ERR,
DAP_CHAIN_NODE_CLI_COM_DECREE_INCOMPATIBLE_PARAMS_ERR,
DAP_CHAIN_NODE_CLI_COM_DECREE_WALLET_ADDR_ERR,
DAP_CHAIN_NODE_CLI_COM_DECREE_TRESHOLD_ERR,
DAP_CHAIN_NODE_CLI_COM_DECREE_LACK_ERR,
DAP_CHAIN_NODE_CLI_COM_DECREE_NET_FIND_ERR,
DAP_CHAIN_NODE_CLI_COM_DECREE_ID_NET_ADDR_DIF_ERR,
DAP_CHAIN_NODE_CLI_COM_DECREE_HASH_GET_ERR,
DAP_CHAIN_NODE_CLI_COM_DECREE_TX_HASH_ERR,
/* add custom codes here */
DAP_CHAIN_NODE_CLI_COM_DECREE_UNKNOWN /* MAX */
} s_com_decree_err_t;
char *dap_chain_node_cli_com_tx_history_err(int a_code); char *dap_chain_node_cli_com_tx_history_err(int a_code);
......
...@@ -32,6 +32,12 @@ ...@@ -32,6 +32,12 @@
#include "dap_chain_net_srv_datum.h" #include "dap_chain_net_srv_datum.h"
#define LOG_TAG "chain_net_srv_datum" #define LOG_TAG "chain_net_srv_datum"
typedef enum s_com_srv_datum_err{
DAP_CHAIN_NODE_CLI_COM_SRV_DATUM_OK = 0,
DAP_CHAIN_NODE_CLI_COM_SRV_DATUM_REQUIRES_PARAMETER_DATUM,
DAP_CHAIN_NODE_CLI_COM_SRV_DATUM_CONFIG_WASNT_LOADED,
DAP_CHAIN_NODE_CLI_COM_SRV_DATUM_CANT_PLACE_DATUM_TO_MEMPOOL
}s_com_srv_datum_err_t;
static dap_chain_net_srv_t *s_srv_datum = NULL; static dap_chain_net_srv_t *s_srv_datum = NULL;
static int s_srv_datum_cli(int argc, char ** argv, void **a_str_reply); static int s_srv_datum_cli(int argc, char ** argv, void **a_str_reply);
...@@ -106,6 +112,7 @@ char* dap_chain_net_srv_datum_custom_add(dap_chain_t * a_chain, const uint8_t *a ...@@ -106,6 +112,7 @@ char* dap_chain_net_srv_datum_custom_add(dap_chain_t * a_chain, const uint8_t *a
static int s_srv_datum_cli(int argc, char ** argv, void **a_str_reply) static int s_srv_datum_cli(int argc, char ** argv, void **a_str_reply)
{ {
json_object ** a_json_arr_reply = (json_object **) a_str_reply;
int arg_index = 1; int arg_index = 1;
dap_chain_net_t * l_chain_net = NULL; dap_chain_net_t * l_chain_net = NULL;
dap_chain_t * l_chain = NULL; dap_chain_t * l_chain = NULL;
...@@ -117,14 +124,16 @@ static int s_srv_datum_cli(int argc, char ** argv, void **a_str_reply) ...@@ -117,14 +124,16 @@ static int s_srv_datum_cli(int argc, char ** argv, void **a_str_reply)
const char * l_datum_hash_str = NULL; const char * l_datum_hash_str = NULL;
dap_cli_server_cmd_find_option_val(argv, arg_index, argc, "-datum", &l_datum_hash_str); dap_cli_server_cmd_find_option_val(argv, arg_index, argc, "-datum", &l_datum_hash_str);
if (!l_datum_hash_str) { if (!l_datum_hash_str) {
dap_cli_server_cmd_set_reply_text(a_str_reply, "Command srv_datum requires parameter '-datum' <datum hash>"); dap_json_rpc_error_add(*a_json_arr_reply, DAP_CHAIN_NODE_CLI_COM_SRV_DATUM_REQUIRES_PARAMETER_DATUM,
return -4; "Command srv_datum requires parameter '-datum' <datum hash>");
return -DAP_CHAIN_NODE_CLI_COM_SRV_DATUM_REQUIRES_PARAMETER_DATUM;
} }
const char * l_system_datum_folder = dap_config_get_item_str(g_config, "resources", "datum_folder"); const char * l_system_datum_folder = dap_config_get_item_str(g_config, "resources", "datum_folder");
if (!l_system_datum_folder){ if (!l_system_datum_folder){
dap_cli_server_cmd_set_reply_text(a_str_reply, "Configuration wasn't loaded"); dap_json_rpc_error_add(*a_json_arr_reply, DAP_CHAIN_NODE_CLI_COM_SRV_DATUM_CONFIG_WASNT_LOADED,
return -6; "Configuration wasn't loaded");
return -DAP_CHAIN_NODE_CLI_COM_SRV_DATUM_CONFIG_WASNT_LOADED;
} }
const char * l_datum_cmd_str = NULL; const char * l_datum_cmd_str = NULL;
...@@ -177,13 +186,16 @@ static int s_srv_datum_cli(int argc, char ** argv, void **a_str_reply) ...@@ -177,13 +186,16 @@ static int s_srv_datum_cli(int argc, char ** argv, void **a_str_reply)
char *l_ret; char *l_ret;
if ((l_ret = dap_chain_net_srv_datum_custom_add(l_chain, l_datum_data, l_datum_data_size)) == NULL) { if ((l_ret = dap_chain_net_srv_datum_custom_add(l_chain, l_datum_data, l_datum_data_size)) == NULL) {
dap_cli_server_cmd_set_reply_text(a_str_reply, dap_json_rpc_error_add(*a_json_arr_reply, DAP_CHAIN_NODE_CLI_COM_SRV_DATUM_CANT_PLACE_DATUM_TO_MEMPOOL,
"Can't place datum custom \"%s\" to mempool", l_datum_hash_str); "Can't place datum custom \"%s\" to mempool", l_datum_hash_str);
} }
else { else {
dap_cli_server_cmd_set_reply_text(a_str_reply, json_object* json_obj_out = json_object_new_object();
"Datum custom %s was successfully placed to mempool", l_datum_hash_str); char *l_status = dap_strdup_printf("Datum custom %s was successfully placed to mempool", l_datum_hash_str);
json_object_object_add(json_obj_out, "status", json_object_new_string(l_status));
DAP_DELETE(l_status);
DAP_DELETE(l_ret); DAP_DELETE(l_ret);
json_object_array_add(*a_json_arr_reply, json_obj_out);
return 0; return 0;
} }
} }
......
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