Bitcoin
Public Member Functions | Private Member Functions | Static Private Member Functions | Private Attributes | List of all members
TorController Class Reference

Public Member Functions

 TorController (struct event_base *base, const std::string &target)
 
 ~TorController ()
 
fs::path GetPrivateKeyFile ()
 
void Reconnect ()
 

Private Member Functions

void add_onion_cb (TorControlConnection &conn, const TorControlReply &reply)
 
void auth_cb (TorControlConnection &conn, const TorControlReply &reply)
 
void authchallenge_cb (TorControlConnection &conn, const TorControlReply &reply)
 
void protocolinfo_cb (TorControlConnection &conn, const TorControlReply &reply)
 
void connected_cb (TorControlConnection &conn)
 
void disconnected_cb (TorControlConnection &conn)
 

Static Private Member Functions

static void reconnect_cb (evutil_socket_t fd, short what, void *arg)
 

Private Attributes

struct event_base * base
 
std::string target
 
TorControlConnection conn
 
std::string private_key
 
std::string service_id
 
bool reconnect
 
struct event * reconnect_ev
 
float reconnect_timeout
 
CService service
 
std::vector< uint8_tcookie
 
std::vector< uint8_tclientNonce
 

Detailed Description

Controller that connects to Tor control socket, authenticate, then create and maintain an ephemeral hidden service.

Constructor & Destructor Documentation

◆ TorController()

TorController::TorController ( struct event_base *  base,
const std::string &  target 
)

◆ ~TorController()

TorController::~TorController ( )

Member Function Documentation

◆ add_onion_cb()

void TorController::add_onion_cb ( TorControlConnection conn,
const TorControlReply reply 
)
private

Callback for ADD_ONION result

◆ auth_cb()

void TorController::auth_cb ( TorControlConnection conn,
const TorControlReply reply 
)
private

Callback for AUTHENTICATE result

◆ authchallenge_cb()

void TorController::authchallenge_cb ( TorControlConnection conn,
const TorControlReply reply 
)
private

Callback for AUTHCHALLENGE result

◆ connected_cb()

void TorController::connected_cb ( TorControlConnection conn)
private

Callback after successful connection

◆ disconnected_cb()

void TorController::disconnected_cb ( TorControlConnection conn)
private

Callback after connection lost or failed connection attempt

◆ GetPrivateKeyFile()

fs::path TorController::GetPrivateKeyFile ( )

Get name of file to store private key in

◆ protocolinfo_cb()

void TorController::protocolinfo_cb ( TorControlConnection conn,
const TorControlReply reply 
)
private

Callback for PROTOCOLINFO result

◆ Reconnect()

void TorController::Reconnect ( )

Reconnect, after getting disconnected

◆ reconnect_cb()

void TorController::reconnect_cb ( evutil_socket_t  fd,
short  what,
void *  arg 
)
staticprivate

Callback for reconnect timer

Member Data Documentation

◆ base

struct event_base* TorController::base
private

◆ clientNonce

std::vector<uint8_t> TorController::clientNonce
private

ClientNonce for SAFECOOKIE auth

◆ conn

TorControlConnection TorController::conn
private

◆ cookie

std::vector<uint8_t> TorController::cookie
private

Cookie for SAFECOOKIE auth

◆ private_key

std::string TorController::private_key
private

◆ reconnect

bool TorController::reconnect
private

◆ reconnect_ev

struct event* TorController::reconnect_ev
private

◆ reconnect_timeout

float TorController::reconnect_timeout
private

◆ service

CService TorController::service
private

◆ service_id

std::string TorController::service_id
private

◆ target

std::string TorController::target
private

The documentation for this class was generated from the following file: