mirror of
https://github.com/bitcoin/bitcoin.git
synced 2025-11-11 14:38:29 +01:00
allow libevent logging to be updated during runtime
This commit is contained in:
@@ -7,6 +7,7 @@
|
||||
#include "clientversion.h"
|
||||
#include "init.h"
|
||||
#include "validation.h"
|
||||
#include "httpserver.h"
|
||||
#include "net.h"
|
||||
#include "netbase.h"
|
||||
#include "rpc/blockchain.h"
|
||||
@@ -598,6 +599,20 @@ UniValue logging(const JSONRPCRequest& request)
|
||||
logCategories &= ~getCategoryMask(request.params[1]);
|
||||
}
|
||||
|
||||
// Update libevent logging if BCLog::LIBEVENT has changed.
|
||||
// If the library version doesn't allow it, UpdateHTTPServerLogging() returns false,
|
||||
// in which case we should clear the BCLog::LIBEVENT flag.
|
||||
// Throw an error if the user has explicitly asked to change only the libevent
|
||||
// flag and it failed.
|
||||
uint32_t changedLogCategories = originalLogCategories ^ logCategories;
|
||||
if (changedLogCategories & BCLog::LIBEVENT) {
|
||||
if (!UpdateHTTPServerLogging(logCategories & BCLog::LIBEVENT)) {
|
||||
logCategories &= ~BCLog::LIBEVENT;
|
||||
if (changedLogCategories == BCLog::LIBEVENT) {
|
||||
throw JSONRPCError(RPC_INVALID_PARAMETER, "libevent logging cannot be updated when using libevent before v2.1.1.");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
UniValue result(UniValue::VOBJ);
|
||||
std::vector<CLogCategoryActive> vLogCatActive = ListActiveLogCategories();
|
||||
|
||||
Reference in New Issue
Block a user