From f5312938ce6f3552d5e2ff4b06dc03f1e17e7c46 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Al=D0=B5x=D0=B0nder=20Lysik=D0=BEv?= <alexander.lysikov@demlabs.net> Date: Mon, 26 Aug 2019 19:53:38 +0500 Subject: [PATCH] up to master --- .gitlab-ci.yml | 13 +++++++++++++ dist/share/configs/kelvin-node.cfg.tpl | 10 ++++++++++ docs/CellFrame.dia | Bin 0 -> 5593 bytes docs/Cellframe.png | Bin 0 -> 29940 bytes docs/ChainFrame.dia | Bin 4534 -> 5593 bytes sources/dap_defines.h | 18 ++++++++++++++++++ sources/main_node_cli.c | 5 +++++ sources/main_node_cli_net.c | 6 +++--- 8 files changed, 49 insertions(+), 3 deletions(-) create mode 100644 .gitlab-ci.yml create mode 100644 docs/CellFrame.dia create mode 100644 docs/Cellframe.png create mode 100644 sources/dap_defines.h diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml new file mode 100644 index 000000000..d70aec97a --- /dev/null +++ b/.gitlab-ci.yml @@ -0,0 +1,13 @@ +stages: + - prepare + - build + - test + +variables: + GIT_SUBMODULE_STRATEGY: normal + +kelvin-node-schedule: + stage: build + tags: + - kelvin-node + script: ~/production/integration/gitlab-CI/build_all_handler.sh kelvin-node && ~/production/integration/gitlab-CI/travis_test.sh diff --git a/dist/share/configs/kelvin-node.cfg.tpl b/dist/share/configs/kelvin-node.cfg.tpl index ebc4f0fb2..a119d36ed 100644 --- a/dist/share/configs/kelvin-node.cfg.tpl +++ b/dist/share/configs/kelvin-node.cfg.tpl @@ -8,6 +8,8 @@ node_role=full #seed_mode=false auto_online=false +# Console + # Server part [server] # By default you don't need to open you to the world @@ -28,6 +30,14 @@ access_groups=expats,services,admins network_address=10.11.12.0 network_mask=255.255.255.0 +# Console interface server +[conserver] +enabled=true +#listen_tcp_port=12345 +listen_unix_socket_path=/opt/kelvin-node/var/run/node_cli +# Default permissions 770 +#listen_unix_socket_permissions=770 + # Application Resources [resources] # 0 means auto detect diff --git a/docs/CellFrame.dia b/docs/CellFrame.dia new file mode 100644 index 0000000000000000000000000000000000000000..2842fa389f882de944696171ce8ca9995c77a247 GIT binary patch literal 5593 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 literal 0 HcmV?d00001 diff --git a/docs/Cellframe.png b/docs/Cellframe.png new file mode 100644 index 0000000000000000000000000000000000000000..d271fdba2bdfdec9a6528852be4d17d0d9f2c5bd GIT binary patch literal 29940 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 SQxm`BAneoIo4)77rN0CFF8ehA literal 0 HcmV?d00001 diff --git a/docs/ChainFrame.dia b/docs/ChainFrame.dia index 9ec80e6539df7d21bb18224210623a42fa5e3c89..2842fa389f882de944696171ce8ca9995c77a247 100644 GIT binary patch literal 5593 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 literal 4534 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 U_Rm$8+<bWVf5E<A!2Y}e08RU?TmS$7 diff --git a/sources/dap_defines.h b/sources/dap_defines.h new file mode 100644 index 000000000..c82859bfb --- /dev/null +++ b/sources/dap_defines.h @@ -0,0 +1,18 @@ +#pragma once +#define DAP_APP_NAME NODE_NETNAME "-node" +#ifdef _WIN32 + #define SYSTEM_PREFIX "opt/"DAP_APP_NAME +#else + #define SYSTEM_PREFIX "/opt/"DAP_APP_NAME +#endif + +#define LOCAL_PREFIX "~/."DAP_APP_NAME + +#define SYSTEM_CONFIGS_DIR SYSTEM_PREFIX"/etc" +#define LOCAL_CONFIGS_DIR LOCAL_PREFIX"/etc" + +#define SYSTEM_CONFIG_GLOBAL_FILENAME SYSTEM_PREFIX"/etc/"DAP_APP_NAME".cfg" +#define LOCAL_CONFIG_GLOBAL LOCAL_PREFIX"/etc/"DAP_APP_NAME".cfg" + +#define SYSTEM_PID_FILE_PATH SYSTEM_PREFIX"/run/"DAP_APP_NAME".pid" +#define LOCAL_PID_FILE_PATH SYSTEM_PREFIX"/run/"DAP_APP_NAME".pid" diff --git a/sources/main_node_cli.c b/sources/main_node_cli.c index 383c506bd..588aee1fd 100644 --- a/sources/main_node_cli.c +++ b/sources/main_node_cli.c @@ -34,6 +34,8 @@ #include "main_node_cli_net.h" #include "main_node_cli_shell.h" +#include "dap_defines.h" + static connect_param *cparam; /** @@ -179,6 +181,9 @@ int main(int argc, const char * argv[]) // set_default_locale(); // command_execution_string = shell_script_filename = (char *) NULL; + dap_common_init(DAP_APP_NAME " Console interface", NULL); + dap_log_level_set(L_CRITICAL ); + dap_config_init( SYSTEM_CONFIG_GLOBAL_FILENAME ); // connect to node cparam = node_cli_connect(); if(!cparam) diff --git a/sources/main_node_cli_net.c b/sources/main_node_cli_net.c index 1f9898252..88d930458 100644 --- a/sources/main_node_cli_net.c +++ b/sources/main_node_cli_net.c @@ -68,7 +68,7 @@ */ static int add_mem_data(uint8_t **memory, size_t *memory_len, char *add_mem, size_t add_size) { - *memory = (char*) realloc(*memory, *memory_len + add_size + 1); + *memory = (uint8_t*) realloc(*memory, *memory_len + add_size + 1); //out of memory! if(*memory == NULL) { //printf("not enough memory (realloc returned NULL)\n"); @@ -124,9 +124,9 @@ connect_param* node_cli_connect(void) CURL *curl_handle = curl_easy_init(); #ifndef _WIN32 - int ret = curl_easy_setopt(curl_handle, CURLOPT_UNIX_SOCKET_PATH, UNIX_SOCKET_FILE); // unix socket mode + int ret = curl_easy_setopt(curl_handle, CURLOPT_UNIX_SOCKET_PATH, dap_config_get_item_str( g_config, "conserver", "listen_unix_socket_path") ); // unix socket mode #else - int ret = curl_easy_setopt(curl_handle, CURLOPT_PORT, 9999); // unix socket mode + int ret = curl_easy_setopt(curl_handle, CURLOPT_PORT, dap_config_get_item_uint16 ( g_config, "conserver", "listen_tcp_port")); // unix socket mode #endif curl_easy_setopt(curl_handle, CURLOPT_TIMEOUT, 60L); // complete within 60 seconds -- GitLab