Bitcoin Core 28.99.0
P2P Digital Currency
Classes | Functions | Variables
httprpc.cpp File Reference
#include <httprpc.h>
#include <common/args.h>
#include <crypto/hmac_sha256.h>
#include <httpserver.h>
#include <logging.h>
#include <netaddress.h>
#include <rpc/protocol.h>
#include <rpc/server.h>
#include <util/fs.h>
#include <util/fs_helpers.h>
#include <util/strencodings.h>
#include <util/string.h>
#include <walletinitinterface.h>
#include <algorithm>
#include <iterator>
#include <map>
#include <memory>
#include <optional>
#include <set>
#include <string>
#include <vector>
Include dependency graph for httprpc.cpp:

Go to the source code of this file.

Classes

class  HTTPRPCTimer
 Simple one-shot callback timer to be used by the RPC mechanism to e.g. More...
 
class  HTTPRPCTimerInterface
 

Functions

static void JSONErrorReply (HTTPRequest *req, UniValue objError, const JSONRPCRequest &jreq)
 
static bool multiUserAuthorized (std::string strUserPass)
 
static bool RPCAuthorized (const std::string &strAuth, std::string &strAuthUsernameOut)
 
static bool HTTPReq_JSONRPC (const std::any &context, HTTPRequest *req)
 
static bool InitRPCAuthentication ()
 
bool StartHTTPRPC (const std::any &context)
 Start HTTP RPC subsystem. More...
 
void InterruptHTTPRPC ()
 Interrupt HTTP RPC subsystem. More...
 
void StopHTTPRPC ()
 Stop HTTP RPC subsystem. More...
 

Variables

static const char * WWW_AUTH_HEADER_DATA = "Basic realm=\"jsonrpc\""
 WWW-Authenticate to present with 401 Unauthorized response. More...
 
static std::string strRPCUserColonPass
 
static std::unique_ptr< HTTPRPCTimerInterfacehttpRPCTimerInterface
 
static std::vector< std::vector< std::string > > g_rpcauth
 
static std::map< std::string, std::set< std::string > > g_rpc_whitelist
 
static bool g_rpc_whitelist_default = false
 

Function Documentation

◆ HTTPReq_JSONRPC()

static bool HTTPReq_JSONRPC ( const std::any &  context,
HTTPRequest req 
)
static

Definition at line 156 of file httprpc.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ InitRPCAuthentication()

static bool InitRPCAuthentication ( )
static

Definition at line 292 of file httprpc.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ InterruptHTTPRPC()

void InterruptHTTPRPC ( )

Interrupt HTTP RPC subsystem.

Definition at line 380 of file httprpc.cpp.

Here is the caller graph for this function:

◆ JSONErrorReply()

static void JSONErrorReply ( HTTPRequest req,
UniValue  objError,
const JSONRPCRequest jreq 
)
static

Definition at line 82 of file httprpc.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ multiUserAuthorized()

static bool multiUserAuthorized ( std::string  strUserPass)
static

Definition at line 104 of file httprpc.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ RPCAuthorized()

static bool RPCAuthorized ( const std::string &  strAuth,
std::string &  strAuthUsernameOut 
)
static

Definition at line 135 of file httprpc.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ StartHTTPRPC()

bool StartHTTPRPC ( const std::any &  context)

Start HTTP RPC subsystem.

Precondition; HTTP and RPC has been started.

Definition at line 362 of file httprpc.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ StopHTTPRPC()

void StopHTTPRPC ( )

Stop HTTP RPC subsystem.

Precondition; HTTP and RPC has been stopped.

Definition at line 385 of file httprpc.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

Variable Documentation

◆ g_rpc_whitelist

std::map<std::string, std::set<std::string> > g_rpc_whitelist
static

Definition at line 79 of file httprpc.cpp.

◆ g_rpc_whitelist_default

bool g_rpc_whitelist_default = false
static

Definition at line 80 of file httprpc.cpp.

◆ g_rpcauth

std::vector<std::vector<std::string> > g_rpcauth
static

Definition at line 77 of file httprpc.cpp.

◆ httpRPCTimerInterface

std::unique_ptr<HTTPRPCTimerInterface> httpRPCTimerInterface
static

Definition at line 75 of file httprpc.cpp.

◆ strRPCUserColonPass

std::string strRPCUserColonPass
static

Definition at line 73 of file httprpc.cpp.

◆ WWW_AUTH_HEADER_DATA

const char* WWW_AUTH_HEADER_DATA = "Basic realm=\"jsonrpc\""
static

WWW-Authenticate to present with 401 Unauthorized response.

Definition at line 33 of file httprpc.cpp.