From f914e6d46c9c24dd0ce11e3300d40cd10a6cf4e6 Mon Sep 17 00:00:00 2001 From: BenDroid Date: Tue, 7 Nov 2017 18:51:55 +0100 Subject: [PATCH] Removed libcurl dependency and fixed avgTime round in dashboard --- CMakeLists.txt | 12 ++---------- index.html | 4 ++-- src/App.cpp | 2 +- src/Options.cpp | 37 ++++++++++++++++++++++++++++++++----- src/Options.h | 7 +++++-- src/Summary.cpp | 4 ++-- src/cc | 2 +- 7 files changed, 45 insertions(+), 23 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 49405e4c..b81f989f 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -249,14 +249,6 @@ if (WITH_CC) message(FATAL_ERROR "microhttpd NOT found: use `-DWITH_CC=OFF` to build without CC Server support") endif() - find_package(CURL) - - if (CURL_FOUND) - include_directories(${CURL_INCLUDE_DIRS}) - else() - message(FATAL_ERROR "curl NOT found: use `-DWITH_CC=OFF` to build without CC Server support") - endif() - set(HEADERS_CC_COMMON src/cc/ControlCommand.h src/cc/ClientStatus.h) @@ -292,11 +284,11 @@ include_directories(src/3rdparty) include_directories(${UV_INCLUDE_DIR}) add_executable(xmrigMiner ${HEADERS} ${SOURCES} ${HEADERS_COMMON} ${SOURCES_COMMON} ${SOURCES_OS} ${SOURCES_CPUID} ${HEADERS_CRYPTO} ${SOURCES_CRYPTO} ${SOURCES_SYSLOG} ${HTTPD_SOURCES} ${SOURCES_CC_COMMON} ${HEADERS_CC_COMMON} ${SOURCES_CC_CLIENT} ${HEADERS_CC_CLIENT}) -target_link_libraries(xmrigMiner ${UV_LIBRARIES} ${MHD_LIBRARY} ${CURL_LIBRARY} ${EXTRA_LIBS} ${CPUID_LIB}) +target_link_libraries(xmrigMiner ${UV_LIBRARIES} ${MHD_LIBRARY} ${EXTRA_LIBS} ${CPUID_LIB}) add_executable(xmrigDaemon src/cc/XMRigd.cpp res/app.rc) -if (WITH_CC AND MHD_FOUND AND CURL_FOUND) +if (WITH_CC AND MHD_FOUND) add_executable(xmrigCCServer ${HEADERS_COMMON} ${SOURCES_COMMON} ${SOURCES_OS} ${SOURCES_CPUID} ${SOURCES_SYSLOG} ${SOURCES_CC_COMMON} ${HEADERS_CC_COMMON} ${SOURCES_CC_SERVER} ${HEADERS_CC_SERVER}) target_link_libraries(xmrigCCServer ${UV_LIBRARIES} ${MHD_LIBRARY} ${EXTRA_LIBS} ${CPUID_LIB}) set_target_properties(xmrigCCServer PROPERTIES COMPILE_FLAGS "-DXMRIG_CC_SERVER ${SHARED_FLAGS}") diff --git a/index.html b/index.html index d6ac0684..f328084e 100644 --- a/index.html +++ b/index.html @@ -96,12 +96,12 @@ $(document).ready(function() { return a + b; }, 0 ); - avgTimeTotal = api + avgTimeTotal = round(api .column(9) .data() .reduce( function (a, b) { return a + b; - }, 0 )/end; + }, 0 )/end); sumSharesGood = api .column(10) diff --git a/src/App.cpp b/src/App.cpp index 431b3aac..06d4ae89 100644 --- a/src/App.cpp +++ b/src/App.cpp @@ -147,7 +147,7 @@ int App::start() # endif # ifndef XMRIG_NO_CC - if (m_options->ccUrl()) { + if (m_options->ccHost() && m_options->ccPort() > 0) { m_ccclient = new CCClient(m_options); } else { LOG_WARN("Please configure CC-Url and restart. CC feature is now deactivated."); diff --git a/src/Options.cpp b/src/Options.cpp index c06c4e02..0a6909e9 100644 --- a/src/Options.cpp +++ b/src/Options.cpp @@ -31,6 +31,8 @@ # include "getopt/getopt.h" #else # include +#include + #endif @@ -260,7 +262,7 @@ Options::Options(int argc, char **argv) : m_apiWorkerId(nullptr), m_logFile(nullptr), m_userAgent(nullptr), - m_ccUrl(nullptr), + m_ccHost(nullptr), m_ccToken(nullptr), m_ccWorkerId(nullptr), m_ccAdminUser(nullptr), @@ -444,9 +446,7 @@ bool Options::parseArg(int key, const char *arg) break; case 4003: /* --cc-url */ - free(m_ccUrl); - m_ccUrl = strdup(arg); - break; + return parseCCUrl(arg); case 4004: /* --cc-access-token */ free(m_ccToken); @@ -494,7 +494,7 @@ bool Options::parseArg(int key, const char *arg) case 4006: /* --cc-port */ return parseArg(key, strtol(arg, nullptr, 10)); case 4012: /* --cc-update-interval-c */ - return parseArg(key, strtol(arg, nullptr, 10)); + return parseArg(key, strtol(arg, nullptr, 10)); case 'B': /* --background */ case 'k': /* --keepalive */ @@ -878,3 +878,30 @@ int Options::getAlgoVariantLite() const return m_algoVariant; } #endif + +bool Options::parseCCUrl(const char* url) +{ + free(m_ccHost); + + const char *port = strchr(url, ':'); + if (!port) { + m_ccHost = strdup(url); + m_ccPort = kDefaultCCPort; + } else { + const size_t size = port++ - url + 1; + m_ccHost = static_cast(malloc(size)); + memcpy(m_ccHost, url, size - 1); + m_ccHost[size - 1] = '\0'; + + m_ccPort = (uint16_t) strtol(port, nullptr, 10); + + if (m_ccPort < 0 || m_ccPort > 65536) { + m_ccPort = kDefaultCCPort; + return false; + } + } + + return true; +} + + diff --git a/src/Options.h b/src/Options.h index 75051f3c..ad0ab60f 100644 --- a/src/Options.h +++ b/src/Options.h @@ -68,7 +68,7 @@ public: inline const char *apiWorkerId() const { return m_apiWorkerId; } inline const char *logFile() const { return m_logFile; } inline const char *userAgent() const { return m_userAgent; } - inline const char *ccUrl() const { return m_ccUrl; } + inline const char *ccHost() const { return m_ccHost; } inline const char *ccToken() const { return m_ccToken; } inline const char *ccWorkerId() const { return m_ccWorkerId; } inline const char *ccAdminUser() const { return m_ccAdminUser; } @@ -94,6 +94,8 @@ public: const char *algoName() const; private: + constexpr static uint16_t kDefaultCCPort = 3344; + Options(int argc, char **argv); ~Options(); @@ -105,6 +107,7 @@ private: bool parseArg(int key, const char *arg); bool parseArg(int key, uint64_t arg); bool parseBoolean(int key, bool enable); + bool parseCCUrl(const char *arg); Url *parseUrl(const char *arg) const; void parseConfig(const char *fileName); void parseJSON(const struct option *option, const rapidjson::Value &object); @@ -132,7 +135,7 @@ private: char *m_apiWorkerId; char *m_logFile; char *m_userAgent; - char *m_ccUrl; + char *m_ccHost; char *m_ccToken; char *m_ccWorkerId; char *m_ccAdminUser; diff --git a/src/Summary.cpp b/src/Summary.cpp index 0da31e08..9b1b6e94 100644 --- a/src/Summary.cpp +++ b/src/Summary.cpp @@ -141,11 +141,11 @@ static void print_api() #ifndef XMRIG_NO_CC static void print_cc() { - if (Options::i()->ccUrl() == nullptr) { + if (Options::i()->ccHost() == nullptr) { return; } - Log::i()->text(Options::i()->colors() ? "\x1B[01;32m * \x1B[01;37mCC Server: \x1B[01;36m%s" : " * CC Server: %s", Options::i()->ccUrl()); + Log::i()->text(Options::i()->colors() ? "\x1B[01;32m * \x1B[01;37mCC Server: \x1B[01;36m%s:%d" : " * CC Server: %s:%d", Options::i()->ccHost(), Options::i()->ccPort()); } #endif diff --git a/src/cc b/src/cc index 5939084c..9d64970a 160000 --- a/src/cc +++ b/src/cc @@ -1 +1 @@ -Subproject commit 5939084c83dfc7f0bbbf87c631365075685dd782 +Subproject commit 9d64970ae2abd1095ed6cff67ddaceb968373d0d