Bitcoin ABC  0.29.2
P2P Digital Currency
Classes | Functions | Variables
httprpc.cpp File Reference
#include <httprpc.h>
#include <chainparams.h>
#include <config.h>
#include <crypto/hmac_sha256.h>
#include <rpc/protocol.h>
#include <util/strencodings.h>
#include <util/system.h>
#include <util/translation.h>
#include <walletinitinterface.h>
#include <boost/algorithm/string.hpp>
#include <algorithm>
#include <cstdio>
#include <functional>
#include <iterator>
#include <map>
#include <memory>
#include <set>
#include <string>
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, const UniValue &objError, const UniValue &id)
 
static bool multiUserAuthorized (std::string strUserPass)
 
static bool RPCAuthorized (const std::string &strAuth, std::string &strAuthUsernameOut)
 
static bool checkCORS (HTTPRequest *req)
 
static bool InitRPCAuthentication ()
 
bool StartHTTPRPC (HTTPRPCRequestProcessor &httpRPCRequestProcessor)
 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 const int64_t RPC_AUTH_BRUTE_FORCE_DELAY = 250
 RPC auth failure delay to make brute-forcing expensive. More...
 
static std::string strRPCUserColonPass
 
static std::string strRPCCORSDomain
 
static std::unique_ptr< HTTPRPCTimerInterfacehttpRPCTimerInterface
 
static std::map< std::string, std::set< std::string > > g_rpc_whitelist
 
static bool g_rpc_whitelist_default = false
 

Function Documentation

◆ checkCORS()

static bool checkCORS ( HTTPRequest req)
static

Definition at line 167 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 402 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 470 of file httprpc.cpp.

Here is the caller graph for this function:

◆ JSONErrorReply()

static void JSONErrorReply ( HTTPRequest req,
const UniValue objError,
const UniValue id 
)
static

Definition at line 77 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 99 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 141 of file httprpc.cpp.

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

◆ StartHTTPRPC()

bool StartHTTPRPC ( HTTPRPCRequestProcessor httpRPCRequestProcessor)

Start HTTP RPC subsystem.

Precondition; HTTP and RPC has been started.

Definition at line 449 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 474 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 74 of file httprpc.cpp.

◆ g_rpc_whitelist_default

bool g_rpc_whitelist_default = false
static

Definition at line 75 of file httprpc.cpp.

◆ httpRPCTimerInterface

std::unique_ptr<HTTPRPCTimerInterface> httpRPCTimerInterface
static

Definition at line 72 of file httprpc.cpp.

◆ RPC_AUTH_BRUTE_FORCE_DELAY

const int64_t RPC_AUTH_BRUTE_FORCE_DELAY = 250
static

RPC auth failure delay to make brute-forcing expensive.

Definition at line 31 of file httprpc.cpp.

◆ strRPCCORSDomain

std::string strRPCCORSDomain
static

Definition at line 70 of file httprpc.cpp.

◆ strRPCUserColonPass

std::string strRPCUserColonPass
static

Definition at line 68 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 28 of file httprpc.cpp.