diff --git a/CHANGELOG.md b/CHANGELOG.md index 5141769d29..af946f11c4 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -16,6 +16,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/). - Replaced opencl kernel with opensource jawawawa opencl kernel - Added support for jawawawa AMD binary kernels - AMD auto kernel selection. Try bin first, if not fall back to opencl. +- API: New method `miner_setverbosity`. [#1382](https://github.com/ethereum-mining/ethminer/pull/1382). ## 0.15.0rc1 diff --git a/docs/API_DOCUMENTATION.md b/docs/API_DOCUMENTATION.md index 081243d67b..5c4ba031a2 100644 --- a/docs/API_DOCUMENTATION.md +++ b/docs/API_DOCUMENTATION.md @@ -20,6 +20,7 @@ * [miner_getscramblerinfo](#miner_getscramblerinfo) * [miner_setscramblerinfo](#miner_setscramblerinfo) * [miner_pausegpu](#miner_pausegpu) + * [miner_setverbosity](#miner_setverbosity) ## Introduction @@ -566,3 +567,28 @@ and expect a result like this: which confirms the action has been performed. Again: This ONLY (re)starts mining if GPU was paused via a previous API call and not if GPU pauses for other reasons. + +### miner_setverbosity + +Set the verbosity level of ethminer. + +```json +{ + "id": 1, + "jsonrpc": "2.0", + "method": "miner_setverbosity", + "data": { + "verbosity": 9 + } +} +``` + +and expect a result like this: + +```json +{ + "id": 1, + "jsonrpc": "2.0", + "result": true +} +``` diff --git a/libapicore/ApiServer.cpp b/libapicore/ApiServer.cpp index f0bfc609a9..8791164ed9 100644 --- a/libapicore/ApiServer.cpp +++ b/libapicore/ApiServer.cpp @@ -624,6 +624,30 @@ void ApiConnection::processRequest(Json::Value& jRequest, Json::Value& jResponse jResponse["result"] = true; } + else if (_method == "miner_setverbosity") + { + if (!checkApiWriteAccess(m_readonly, jResponse)) + return; + + Json::Value jRequestParams; + if (!getRequestValue("params", jRequestParams, jRequest, false, jResponse)) + return; + + unsigned verbosity; + if (!getRequestValue("verbosity", verbosity, jRequestParams, false, jResponse)) + return; + + if (verbosity > 9) + { + jResponse["error"]["code"] = -422; + jResponse["error"]["message"] = "Verbosity out of bounds (0-9)"; + return; + } + cnote << "Setting verbosity level to " << verbosity; + g_logVerbosity = verbosity; + jResponse["result"] = true; + } + else { // Any other method not found