Dash Core  0.12.2.1
P2P Digital Currency
TorController Class Reference

Public Member Functions

 TorController (struct event_base *base, const std::string &target)
 
 ~TorController ()
 
std::string 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_t > cookie
 
std::vector< uint8_t > clientNonce
 

Detailed Description

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

Definition at line 350 of file torcontrol.cpp.

Constructor & Destructor Documentation

◆ TorController()

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

Definition at line 393 of file torcontrol.cpp.

◆ ~TorController()

TorController::~TorController ( )

Definition at line 414 of file torcontrol.cpp.

Member Function Documentation

◆ add_onion_cb()

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

Callback for ADD_ONION result

Definition at line 425 of file torcontrol.cpp.

Referenced by auth_cb().

◆ auth_cb()

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

Callback for AUTHENTICATE result

Definition at line 453 of file torcontrol.cpp.

Referenced by authchallenge_cb(), and protocolinfo_cb().

◆ authchallenge_cb()

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

Callback for AUTHCHALLENGE result

Definition at line 507 of file torcontrol.cpp.

Referenced by protocolinfo_cb().

◆ connected_cb()

void TorController::connected_cb ( TorControlConnection conn)
private

Callback after succesful connection

Definition at line 610 of file torcontrol.cpp.

Referenced by Reconnect(), and TorController().

◆ disconnected_cb()

void TorController::disconnected_cb ( TorControlConnection conn)
private

Callback after connection lost or failed connection attempt

Definition at line 618 of file torcontrol.cpp.

Referenced by Reconnect(), and TorController().

◆ GetPrivateKeyFile()

std::string TorController::GetPrivateKeyFile ( )

Get name fo file to store private key in

Definition at line 647 of file torcontrol.cpp.

Referenced by add_onion_cb(), and TorController().

◆ protocolinfo_cb()

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

Callback for PROTOCOLINFO result

Definition at line 538 of file torcontrol.cpp.

Referenced by connected_cb().

◆ Reconnect()

void TorController::Reconnect ( )

Reconnect, after getting disconnected

Definition at line 636 of file torcontrol.cpp.

Referenced by reconnect_cb().

◆ reconnect_cb()

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

Callback for reconnect timer

Definition at line 652 of file torcontrol.cpp.

Referenced by TorController().

Member Data Documentation

◆ base

struct event_base* TorController::base
private

Definition at line 362 of file torcontrol.cpp.

Referenced by TorController().

◆ clientNonce

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

ClientNonce for SAFECOOKIE auth

Definition at line 374 of file torcontrol.cpp.

Referenced by authchallenge_cb(), and protocolinfo_cb().

◆ conn

TorControlConnection TorController::conn
private

◆ cookie

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

Cooie for SAFECOOKIE auth

Definition at line 372 of file torcontrol.cpp.

Referenced by authchallenge_cb(), and protocolinfo_cb().

◆ private_key

std::string TorController::private_key
private

Definition at line 365 of file torcontrol.cpp.

Referenced by add_onion_cb(), auth_cb(), and TorController().

◆ reconnect

bool TorController::reconnect
private

Definition at line 367 of file torcontrol.cpp.

Referenced by disconnected_cb().

◆ reconnect_ev

struct event* TorController::reconnect_ev
private

Definition at line 368 of file torcontrol.cpp.

Referenced by disconnected_cb(), TorController(), and ~TorController().

◆ reconnect_timeout

float TorController::reconnect_timeout
private

Definition at line 369 of file torcontrol.cpp.

Referenced by connected_cb(), and disconnected_cb().

◆ service

CService TorController::service
private

Definition at line 370 of file torcontrol.cpp.

Referenced by add_onion_cb(), disconnected_cb(), and ~TorController().

◆ service_id

std::string TorController::service_id
private

Definition at line 366 of file torcontrol.cpp.

Referenced by add_onion_cb().

◆ target

std::string TorController::target
private

Definition at line 363 of file torcontrol.cpp.

Referenced by disconnected_cb(), Reconnect(), and TorController().


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