diff --git a/dap-sdk b/dap-sdk index be69f08335f87c02611bde352b3062f21eed1ef8..1f0c4caf7a9cec9ddee67e9019e337c4c9278168 160000 --- a/dap-sdk +++ b/dap-sdk @@ -1 +1 @@ -Subproject commit be69f08335f87c02611bde352b3062f21eed1ef8 +Subproject commit 1f0c4caf7a9cec9ddee67e9019e337c4c9278168 diff --git a/modules/common/dap_chain_datum.c b/modules/common/dap_chain_datum.c index 1548f1698f327a12bb6ec69c6f0b2bb54363ead2..fa6c46c570e2e1f93335dfbf0a6c3433b856ec7f 100644 --- a/modules/common/dap_chain_datum.c +++ b/modules/common/dap_chain_datum.c @@ -240,18 +240,18 @@ bool dap_chain_datum_dump_tx(dap_chain_datum_tx_t *a_datum, dap_hash_fast_t *a_tx_hash, dap_chain_net_id_t a_net_id) { - dap_time_t l_ts_create = (dap_time_t)a_datum->header.ts_created; bool l_is_first = false; dap_chain_tx_in_t *l_in_item = (dap_chain_tx_in_t *)dap_chain_datum_tx_item_get(a_datum, NULL, TX_ITEM_TYPE_IN, NULL); if (l_in_item && dap_hash_fast_is_blank(&l_in_item->header.tx_prev_hash)) l_is_first = true; - char l_tmp_buf[70]; + char l_tmp_buf[DAP_TIME_STR_SIZE]; char *l_hash_str = dap_strcmp(a_hash_out_type, "hex") ? dap_enc_base58_encode_hash_to_str(a_tx_hash) : dap_chain_hash_fast_to_str_new(a_tx_hash); + dap_time_to_str_rfc822(l_tmp_buf, DAP_TIME_STR_SIZE, a_datum->header.ts_created); dap_string_append_printf(a_str_out, "transaction:%s hash %s\n TS Created: %s%s%s\n Items:\n", - l_is_first ? " (emit)" : "", l_hash_str, dap_ctime_r(&l_ts_create, l_tmp_buf), - a_ticker ? " Token ticker: " : "", a_ticker ? a_ticker : ""); + l_is_first ? " (emit)" : "", l_hash_str, l_tmp_buf, + a_ticker ? " Token ticker: " : "", a_ticker ? a_ticker : ""); DAP_DELETE(l_hash_str); uint32_t l_tx_items_count = 0; uint32_t l_tx_items_size = a_datum->header.tx_items_size; @@ -468,14 +468,14 @@ bool dap_chain_datum_dump_tx(dap_chain_datum_tx_t *a_datum, char *l_value_str = dap_chain_balance_print(((dap_chain_tx_out_cond_t*)item)->header.value); char *l_coins_str = dap_chain_balance_to_coins(((dap_chain_tx_out_cond_t*)item)->header.value); dap_time_t l_ts_exp = ((dap_chain_tx_out_cond_t*)item)->header.ts_expires; + dap_time_to_str_rfc822(l_tmp_buf, DAP_TIME_STR_SIZE, l_ts_exp); dap_string_append_printf(a_str_out, "\t OUT COND:\n" "\t Header:\n" "\t\t ts_expires: %s" "\t\t value: %s (%s)\n" "\t\t subtype: %s\n" "\t\t uid: 0x%016"DAP_UINT64_FORMAT_x"\n", - l_ts_exp ? dap_ctime_r(&l_ts_exp, l_tmp_buf) : "never\n", - l_coins_str, l_value_str, + l_ts_exp ? l_tmp_buf : "never\n", l_coins_str, l_value_str, dap_chain_tx_out_cond_subtype_to_str(((dap_chain_tx_out_cond_t*)item)->header.subtype), ((dap_chain_tx_out_cond_t*)item)->header.srv_uid.uint64); DAP_DELETE(l_value_str); @@ -527,9 +527,9 @@ bool dap_chain_datum_dump_tx(dap_chain_datum_tx_t *a_datum, DAP_DELETE(l_rate_str); } break; case DAP_CHAIN_TX_OUT_COND_SUBTYPE_SRV_STAKE_LOCK: { - dap_time_t l_ts_exp = ((dap_chain_tx_out_cond_t*)item)->subtype.srv_stake_lock.time_unlock; - dap_string_append_printf(a_str_out, "\t\t\t time_unlock %s\n", - dap_ctime_r(&l_ts_exp, l_tmp_buf)); + dap_time_t l_ts_unlock = ((dap_chain_tx_out_cond_t*)item)->subtype.srv_stake_lock.time_unlock; + dap_time_to_str_rfc822(l_tmp_buf, DAP_TIME_STR_SIZE, l_ts_unlock); + dap_string_append_printf(a_str_out, "\t\t\t time_unlock %s\n", l_tmp_buf); } break; default: break; } @@ -565,12 +565,15 @@ bool dap_chain_datum_dump_tx(dap_chain_datum_tx_t *a_datum, l_temp = l_temp->next; } - if(l_voting_params->voting_expire) - dap_string_append_printf(a_str_out, "\t Voting expire: %s\n", dap_ctime_r(&l_voting_params->voting_expire, l_tmp_buf)); + if (l_voting_params->voting_expire) { + dap_time_to_str_rfc822(l_tmp_buf, DAP_TIME_STR_SIZE, l_voting_params->voting_expire); + dap_string_append_printf(a_str_out, "\t Voting expire: %s\n", l_tmp_buf); + } if (l_voting_params->votes_max_count) dap_string_append_printf(a_str_out, "\t Votes max count: %"DAP_UINT64_FORMAT_U"\n", l_voting_params->votes_max_count); dap_string_append_printf(a_str_out, "\t Changing vote is %s available.\n", l_voting_params->vote_changing_allowed ? "" : "not"); - dap_string_append_printf(a_str_out, "\t A delegated key is%s required to participate in voting. \n", l_voting_params->delegate_key_required ? "" : " not"); + dap_string_append_printf(a_str_out, "\t A delegated key is%s required to participate in voting. \n", + l_voting_params->delegate_key_required ? "" : " not"); dap_list_free_full(l_voting_params->answers_list, NULL); DAP_DELETE(l_voting_params->voting_question); diff --git a/modules/json_rpc/common/dap_json_rpc_chain_datum.c b/modules/json_rpc/common/dap_json_rpc_chain_datum.c index 1590afbe227224db66fc16bfbb9d8bcd023d0c40..c55f9d93999a547009b8138d917af098074950e4 100644 --- a/modules/json_rpc/common/dap_json_rpc_chain_datum.c +++ b/modules/json_rpc/common/dap_json_rpc_chain_datum.c @@ -676,10 +676,9 @@ json_object * dap_chain_datum_to_json(dap_chain_datum_t* a_datum){ json_object_object_add(l_object, "data_size", l_obj_size); json_object_object_add(l_object, "version", l_obj_version); - char l_time_str[32]; + char l_time_str[DAP_TIME_STR_SIZE]; if (a_datum->header.ts_create) { - uint64_t l_ts = a_datum->header.ts_create; - dap_ctime_r(&l_ts, l_time_str); /* Convert ts to "Sat May 17 01:17:08 2014\n" */ + dap_time_to_str_rfc822(l_time_str, DAP_TIME_STR_SIZE, a_datum->header.ts_create); /* Convert ts to "Sat May 17 01:17:08 2014\n" */ l_time_str[strlen(l_time_str)-1] = '\0'; /* Remove "\n"*/ } json_object *l_obj_ts_created = json_object_new_string(l_time_str); diff --git a/modules/json_rpc/common/dap_json_rpc_chain_datum_tx.c b/modules/json_rpc/common/dap_json_rpc_chain_datum_tx.c index 9548584eddf8fbaf4cb98b6c859f9e4591dc6dd7..043b57b2519d415eb37d79a995c7f3adeead627c 100644 --- a/modules/json_rpc/common/dap_json_rpc_chain_datum_tx.c +++ b/modules/json_rpc/common/dap_json_rpc_chain_datum_tx.c @@ -87,7 +87,7 @@ json_object *dap_chain_datum_tx_to_json(dap_chain_datum_tx_t *a_tx){ dap_time_t l_ts_exp = ((dap_chain_tx_out_cond_t*)item)->header.ts_expires; char l_time_str[32] = "never"; if (l_ts_exp) { - dap_ctime_r(&l_ts_exp, l_time_str); /* Convert ts to "Sat May 17 01:17:08 2014\n" */ + dap_time_to_str_rfc822(l_time_str, DAP_TIME_STR_SIZE, l_ts_exp); /* Convert ts to "Sat May 17 01:17:08 2014\n" */ l_time_str[strlen(l_time_str)-1] = '\0'; /* Remove "\n"*/ } json_object_object_add(l_obj_item_data, "ts_expires", json_object_new_string(l_time_str)); diff --git a/modules/net/dap_chain_ledger.c b/modules/net/dap_chain_ledger.c index 3b8b2c786983a0905efabf1fbbfbdef08dcd4618..227d5c0bd2c7d138c07e75a955ec20bdee7ca103 100644 --- a/modules/net/dap_chain_ledger.c +++ b/modules/net/dap_chain_ledger.c @@ -819,11 +819,9 @@ dap_chain_datum_token_t *dap_ledger_token_ticker_check(dap_ledger_t *a_ledger, c static void s_tx_header_print(dap_string_t *a_str_out, dap_chain_datum_tx_t *a_tx, const char *a_hash_out_type, dap_chain_hash_fast_t *a_tx_hash) { - char l_time_str[32] = "unknown"; - if (a_tx->header.ts_created) { - uint64_t l_ts = a_tx->header.ts_created; - dap_ctime_r(&l_ts, l_time_str); - } + char l_time_str[DAP_TIME_STR_SIZE] = "unknown"; + if (a_tx->header.ts_created) + dap_time_to_str_rfc822(l_time_str, DAP_TIME_STR_SIZE, a_tx->header.ts_created); char *l_tx_hash_str = dap_strcmp(a_hash_out_type, "hex") ? dap_enc_base58_encode_hash_to_str(a_tx_hash) : dap_chain_hash_fast_to_str_new(a_tx_hash); diff --git a/modules/net/dap_chain_net.c b/modules/net/dap_chain_net.c index 75c6535935c1a8f62a07ce3c17f0b3824f97b735..d85f0058f2441c2996521ad0e88c8f71bcf2ed8b 100644 --- a/modules/net/dap_chain_net.c +++ b/modules/net/dap_chain_net.c @@ -3021,7 +3021,7 @@ static void s_nodelist_change_notify(dap_store_obj_t *a_obj, void *a_arg) inet_ntop(AF_INET, &l_node_info->hdr.ext_addr_v4, l_node_ipv4_str, INET_ADDRSTRLEN); inet_ntop(AF_INET6, &l_node_info->hdr.ext_addr_v6, l_node_ipv6_str, INET6_ADDRSTRLEN); char l_ts[128] = { '\0' }; - dap_gbd_time_to_str_rfc822(l_ts, sizeof(l_ts), a_obj->timestamp); + dap_nanotime_to_str_rfc822(l_ts, sizeof(l_ts), a_obj->timestamp); log_it(L_MSG, "Add node "NODE_ADDR_FP_STR" ipv4 %s(ipv6 %s):%s at %s to network\n", NODE_ADDR_FP_ARGS_S(l_node_info->hdr.address), diff --git a/modules/net/dap_chain_net_node_list.c b/modules/net/dap_chain_net_node_list.c index 73d1787adbafb9e69192a573a1a87ca7e76e3ff4..f493431055a54c5b0a5098b8ba88d7128de7a124 100644 --- a/modules/net/dap_chain_net_node_list.c +++ b/modules/net/dap_chain_net_node_list.c @@ -273,7 +273,7 @@ static void s_node_list_callback_notify(dap_store_obj_t *a_obj, void *a_arg) inet_ntop(AF_INET, &l_node_info->hdr.ext_addr_v4, l_node_ipv4_str, INET_ADDRSTRLEN); inet_ntop(AF_INET6, &l_node_info->hdr.ext_addr_v6, l_node_ipv6_str, INET6_ADDRSTRLEN); char l_ts[128] = { '\0' }; - dap_gbd_time_to_str_rfc822(l_ts, sizeof(l_ts), a_obj->timestamp); + dap_nanotime_to_str_rfc822(l_ts, sizeof(l_ts), a_obj->timestamp); log_it(L_MSG, "Add node "NODE_ADDR_FP_STR" %s %u, pinned by "NODE_ADDR_FP_STR" at %s", NODE_ADDR_FP_ARGS_S(l_node_info->hdr.address), diff --git a/modules/net/dap_chain_net_voting.c b/modules/net/dap_chain_net_voting.c index 00855faa3fcd1bd6677e146d6fa56d9ef460aa0b..285bcd3f129e1aedb730b1e9f329fbdafd84a3fe 100644 --- a/modules/net/dap_chain_net_voting.c +++ b/modules/net/dap_chain_net_voting.c @@ -1131,9 +1131,10 @@ static int s_cli_voting(int a_argc, char **a_argv, void **a_str_reply) dap_string_append(l_str_out, "\n\n"); if(l_voting->voting_params.voting_expire_offset){ - char l_tmp_buf[70]; + char l_tmp_buf[DAP_TIME_STR_SIZE]; dap_time_t l_expire = *(dap_time_t*)((byte_t*)l_voting->voting_params.voting_tx + l_voting->voting_params.voting_expire_offset); - dap_string_append_printf(l_str_out, "\t Voting expire: %s", dap_ctime_r(&l_expire, l_tmp_buf)); + dap_time_to_str_rfc822(l_tmp_buf, DAP_TIME_STR_SIZE, l_expire); + dap_string_append_printf(l_str_out, "\t Voting expire: %s", l_tmp_buf); dap_string_truncate(l_str_out, l_str_out->len - 1); dap_string_append_printf(l_str_out, " (%s)\n", l_expire > dap_time_now() ? "active" : "expired"); } diff --git a/modules/net/dap_chain_node_cli_cmd.c b/modules/net/dap_chain_node_cli_cmd.c index b5866be0d3c3314bb760ae7d74b5c8a754960a87..ecc80109b02ee3e36b83bdad6be0bc4668f43400 100644 --- a/modules/net/dap_chain_node_cli_cmd.c +++ b/modules/net/dap_chain_node_cli_cmd.c @@ -500,7 +500,7 @@ static int node_info_dump_with_reply(dap_chain_net_t * a_net, dap_chain_node_add inet_ntop(AF_INET, &l_node_info->hdr.ext_addr_v4, l_node_ipv4_str, INET_ADDRSTRLEN); inet_ntop(AF_INET6, &l_node_info->hdr.ext_addr_v6, l_node_ipv6_str, INET6_ADDRSTRLEN); char l_ts[128] = { '\0' }; - dap_gbd_time_to_str_rfc822(l_ts, sizeof(l_ts), l_objs[i].timestamp); + dap_nanotime_to_str_rfc822(l_ts, sizeof(l_ts), l_objs[i].timestamp); dap_string_append_printf(l_string_reply, NODE_ADDR_FP_STR" %-20s%-8d"NODE_ADDR_FP_STR" %-32s\n", NODE_ADDR_FP_ARGS_S(l_node_info->hdr.address), @@ -879,7 +879,7 @@ int com_global_db(int a_argc, char ** a_argv, void **a_str_reply) }*/ if (l_ts) { char l_ts_str[80] = { '\0' }; - dap_gbd_time_to_str_rfc822(l_ts_str, sizeof(l_ts_str), l_ts); + dap_nanotime_to_str_rfc822(l_ts_str, sizeof(l_ts_str), l_ts); char *l_value_hexdump = dap_dump_hex(l_value_out, l_out_len); if (l_value_hexdump) { @@ -984,7 +984,7 @@ int com_global_db(int a_argc, char ** a_argv, void **a_str_reply) dap_string_t *l_ret_str = dap_string_new(NULL); for(size_t i = 0; i < l_objs_count; i++) { char l_ts[64] = { '\0' }; - dap_gbd_time_to_str_rfc822(l_ts, sizeof(l_ts), l_obj[i].timestamp); + dap_nanotime_to_str_rfc822(l_ts, sizeof(l_ts), l_obj[i].timestamp); dap_string_append_printf(l_ret_str, "\t%s, %s\n", l_obj[i].key, l_ts); } dap_global_db_objs_delete(l_obj, l_objs_count); @@ -3562,7 +3562,7 @@ int _cmd_mempool_proc(dap_chain_net_t *a_net, dap_chain_t *a_chain, const char * DAP_DELETE(l_gdb_group_mempool); return DAP_COM_MEMPOOL_PROC_LIST_ERROR_REAL_HASH_DATUM_DOES_NOT_MATCH_HASH_DATA_STRING; } - char buf[50]; + char buf[DAP_TIME_STR_SIZE]; dap_time_t l_ts_create = (dap_time_t)l_datum->header.ts_create; const char *l_type = NULL; DAP_DATUM_TYPE_STR(l_datum->header.type_id, l_type); @@ -3572,8 +3572,8 @@ int _cmd_mempool_proc(dap_chain_net_t *a_net, dap_chain_t *a_chain, const char * json_object *l_jobj_type = json_object_new_string(l_type); json_object *l_jobj_ts_created = json_object_new_object(); json_object *l_jobj_ts_created_time_stamp = json_object_new_uint64(l_ts_create); - char *l_ts_created_str = dap_ctime_r(&l_ts_create, buf); - if (!l_ts_created_str || !l_jobj_ts_created || !l_jobj_ts_created_time_stamp || !l_jobj_type || + int l_res = dap_time_to_str_rfc822(buf, DAP_TIME_STR_SIZE, l_ts_create); + if (l_res < 0 || !l_jobj_ts_created || !l_jobj_ts_created_time_stamp || !l_jobj_type || !l_jobj_hash || !l_jobj_datum || !l_jobj_res) { json_object_put(l_jobj_res); json_object_put(l_jobj_datum); @@ -3581,12 +3581,10 @@ int _cmd_mempool_proc(dap_chain_net_t *a_net, dap_chain_t *a_chain, const char * json_object_put(l_jobj_type); json_object_put(l_jobj_ts_created); json_object_put(l_jobj_ts_created_time_stamp); - DAP_DEL_Z(l_ts_created_str); dap_json_rpc_allocation_error; return DAP_JSON_RPC_ERR_CODE_MEMORY_ALLOCATED; } - json_object *l_jobj_ts_created_str = json_object_new_string(l_ts_created_str); - DAP_DEL_Z(l_ts_created_str); + json_object *l_jobj_ts_created_str = json_object_new_string(buf); json_object *l_jobj_data_size = json_object_new_uint64(l_datum->header.data_size); if (!l_jobj_ts_created_str || !l_jobj_data_size) { json_object_put(l_jobj_res); diff --git a/modules/net/dap_chain_node_cli_cmd_tx.c b/modules/net/dap_chain_node_cli_cmd_tx.c index 0a8ea3adb89cb789ab252a34556c448cf85bf30e..1c9f797c54955bbad513f3f2d0cac1fb7a1d3000 100644 --- a/modules/net/dap_chain_node_cli_cmd_tx.c +++ b/modules/net/dap_chain_node_cli_cmd_tx.c @@ -176,10 +176,9 @@ json_object * dap_db_tx_history_to_json(dap_chain_hash_fast_t* a_tx_hash, json_object_object_add(json_obj_datum, "ret_code", json_object_new_int(l_ret_code)); json_object_object_add(json_obj_datum, "ret_code_str", json_object_new_string(dap_ledger_tx_check_err_str(l_ret_code))); - char l_time_str[32]; + char l_time_str[DAP_TIME_STR_SIZE]; if (l_tx->header.ts_created) { - uint64_t l_ts = l_tx->header.ts_created; - dap_ctime_r(&l_ts, l_time_str); /* Convert ts to "Sat May 17 01:17:08 2014\n" */ + dap_time_to_str_rfc822(l_time_str, DAP_TIME_STR_SIZE, l_tx->header.ts_created);/* Convert ts to "Sat May 17 01:17:08 2014\n" */ l_time_str[strlen(l_time_str)-1] = '\0'; /* Remove "\n"*/ } json_object *l_obj_ts_created = json_object_new_string(l_time_str); @@ -229,10 +228,9 @@ static void s_tx_header_print(json_object* json_obj_datum, dap_chain_tx_hash_pro { bool l_declined = false; // transaction time - char l_time_str[32] = "unknown"; /* Prefill string */ + char l_time_str[DAP_TIME_STR_SIZE] = "unknown"; /* Prefill string */ if (a_tx->header.ts_created) { - uint64_t l_ts = a_tx->header.ts_created; - dap_ctime_r(&l_ts, l_time_str); /* Convert ts to "Sat May 17 01:17:08 2014\n" */ + dap_time_to_str_rfc822(l_time_str, DAP_TIME_STR_SIZE, a_tx->header.ts_created); /* Convert ts to "Sat May 17 01:17:08 2014\n" */ l_time_str[strlen(l_time_str)-1] = '\0'; /* Remove "\n"*/ } dap_chain_tx_hash_processed_ht_t *l_tx_data = NULL; diff --git a/modules/service/stake/dap_chain_net_srv_stake_pos_delegate.c b/modules/service/stake/dap_chain_net_srv_stake_pos_delegate.c index 1616bc2ab4b98fd80a75ebe18b4fb80feb734b2d..d448dfa7877f708e65e56fbca106fe53e04aae14 100644 --- a/modules/service/stake/dap_chain_net_srv_stake_pos_delegate.c +++ b/modules/service/stake/dap_chain_net_srv_stake_pos_delegate.c @@ -2540,15 +2540,14 @@ static int s_cli_srv_stake(int a_argc, char **a_argv, void **a_str_reply) for(dap_list_t *tx = l_args->ret; tx; tx = tx->next) { l_datum_tx = (dap_chain_datum_tx_t*)tx->data; - dap_time_t l_ts_create = (dap_time_t)l_datum_tx->header.ts_created; - char buf[50] = {[0]='\0'}; + char buf[DAP_TIME_STR_SIZE]; dap_hash_fast(l_datum_tx, dap_chain_datum_tx_get_size(l_datum_tx), &l_datum_hash); l_tx_out_cond = dap_chain_datum_tx_out_cond_get(l_datum_tx, DAP_CHAIN_TX_OUT_COND_SUBTYPE_SRV_STAKE_POS_DELEGATE, &l_out_idx_tmp); char l_hash_str[DAP_CHAIN_HASH_FAST_STR_SIZE]; dap_chain_hash_fast_to_str(&l_datum_hash, l_hash_str, sizeof(l_hash_str)); dap_string_append_printf(l_str_tmp,"%s \n",spaces); - dap_string_append_printf(l_str_tmp,"%s \n",dap_ctime_r(&l_ts_create, buf)); + dap_string_append_printf(l_str_tmp, "%s \n", dap_time_to_str_rfc822(buf, DAP_TIME_STR_SIZE, l_datum_tx->header.ts_created)); dap_string_append_printf(l_str_tmp,"tx_hash:\t%s \n",l_hash_str); l_signing_addr_str = dap_chain_addr_to_str(&l_tx_out_cond->subtype.srv_stake_pos_delegate.signing_addr); diff --git a/modules/service/xchange/dap_chain_net_srv_xchange.c b/modules/service/xchange/dap_chain_net_srv_xchange.c index d73c2eadd34e96e6d3c94f04717c277f0c92f8ec..1dca52acb800f8eb6a43637acfe6156478bff9a2 100644 --- a/modules/service/xchange/dap_chain_net_srv_xchange.c +++ b/modules/service/xchange/dap_chain_net_srv_xchange.c @@ -1395,9 +1395,9 @@ static int s_cli_srv_xchange_order(int a_argc, char **a_argv, int a_arg_index, v *(char*)(l_dot_pos + 3) = '\0'; } - char l_tmp_buf[70] = {}; + char l_tmp_buf[DAP_TIME_STR_SIZE] = {}; dap_time_t l_ts_create = (dap_time_t)l_tx->header.ts_created; - dap_ctime_r(&l_ts_create, l_tmp_buf); + dap_time_to_str_rfc822(l_tmp_buf, DAP_TIME_STR_SIZE, l_ts_create); l_tmp_buf[strlen(l_tmp_buf) - 1] = '\0'; dap_cli_server_cmd_set_reply_text(a_str_reply, "orderHash: %s\n ts_created: %s (%"DAP_UINT64_FORMAT_U")\n Status: %s, amount: %s (%s) %s, filled: %s%%, rate (%s/%s): %s, net: %s\n\n", l_tx_hash_str, @@ -1602,9 +1602,9 @@ static bool s_string_append_tx_cond_info( dap_string_t * a_reply_str, dap_string_append_printf(a_reply_str, "Hash: %s\n", l_tx_hash_str); if(a_print_ts){ - char l_tmp_buf[70]; - dap_time_t l_ts_create = (dap_time_t)a_tx->header.ts_created; - dap_string_append_printf(a_reply_str, " ts_created: %s", dap_ctime_r(&l_ts_create, l_tmp_buf)); + char l_tmp_buf[DAP_TIME_STR_SIZE]; + dap_time_to_str_rfc822(l_tmp_buf, DAP_TIME_STR_SIZE, a_tx->header.ts_created); + dap_string_append_printf(a_reply_str, " ts_created: %s", l_tmp_buf); } if( a_print_status) dap_string_append_printf(a_reply_str, " Status: %s,", l_is_closed ? "inactive" : "active"); @@ -1642,9 +1642,9 @@ static bool s_string_append_tx_cond_info( dap_string_t * a_reply_str, dap_string_append_printf(a_reply_str, "Hash: %s\n", l_tx_hash_str); if(a_print_ts){ - char l_tmp_buf[70]; - dap_time_t l_ts_create = (dap_time_t)a_tx->header.ts_created; - dap_string_append_printf(a_reply_str, " ts_created: %s", dap_ctime_r(&l_ts_create, l_tmp_buf)); + char l_tmp_buf[DAP_TIME_STR_SIZE]; + dap_time_to_str_rfc822(l_tmp_buf, DAP_TIME_STR_SIZE, a_tx->header.ts_created); + dap_string_append_printf(a_reply_str, " ts_created: %s", l_tmp_buf); } if(a_print_status) dap_string_append_printf(a_reply_str, " Status: %s,", l_is_closed ? "inactive" : "active"); @@ -1672,9 +1672,9 @@ static bool s_string_append_tx_cond_info( dap_string_t * a_reply_str, dap_string_append_printf(a_reply_str, "Hash: %s\n", l_tx_hash_str); if(a_print_ts){ - char l_tmp_buf[70]; - dap_time_t l_ts_create = (dap_time_t)a_tx->header.ts_created; - dap_string_append_printf(a_reply_str, " ts_created: %s", dap_ctime_r(&l_ts_create, l_tmp_buf)); + char l_tmp_buf[DAP_TIME_STR_SIZE]; + dap_time_to_str_rfc822(l_tmp_buf, DAP_TIME_STR_SIZE, a_tx->header.ts_created); + dap_string_append_printf(a_reply_str, " ts_created: %s", l_tmp_buf); } if (a_print_status) dap_string_append_printf(a_reply_str, " Status: inactive,"); @@ -1906,9 +1906,9 @@ static int s_cli_srv_xchange(int a_argc, char **a_argv, void **a_str_reply) *(char*)(l_dot_pos + 3) = '\0'; } - char l_tmp_buf[70] = {}; - dap_time_t l_ts_create = (dap_time_t)l_tx->header.ts_created; - dap_ctime_r(&l_ts_create, l_tmp_buf); + char l_tmp_buf[DAP_TIME_STR_SIZE]; + dap_time_t l_ts_create = l_tx->header.ts_created; + dap_time_to_str_rfc822(l_tmp_buf, DAP_TIME_STR_SIZE, l_ts_create); l_tmp_buf[strlen(l_tmp_buf) - 1] = '\0'; dap_string_append_printf(l_reply_str, "orderHash: %s\n ts_created: %s (%"DAP_UINT64_FORMAT_U")\n Status: %s, amount: %s (%s) %s, filled: %s%%, rate (%s/%s): %s, net: %s\n\n", l_tx_hash_str, @@ -2225,8 +2225,8 @@ static int s_cli_srv_xchange(int a_argc, char **a_argv, void **a_str_reply) char *l_rate_average_str = dap_chain_balance_to_coins(l_rate_average); char *l_last_rate_str = dap_chain_balance_to_coins(l_rate); - char l_tmp_buf[70] = {}; - dap_ctime_r(&l_last_rate_time, l_tmp_buf); + char l_tmp_buf[DAP_TIME_STR_SIZE]; + dap_time_to_str_rfc822(l_tmp_buf, DAP_TIME_STR_SIZE, l_last_rate_time); l_tmp_buf[strlen(l_tmp_buf) - 1] = '\0'; dap_string_append_printf(l_reply_str,"Average rate: %s \n\rLast rate: %s Last rate time: %s (%"DAP_UINT64_FORMAT_U")", l_rate_average_str, l_last_rate_str, l_tmp_buf, l_last_rate_time); DAP_DELETE(l_rate_average_str);