Dash Core  0.12.2.1
P2P Digital Currency
TorControlConnection Class Reference

Public Types

typedef boost::function< void(TorControlConnection &)> ConnectionCB
 
typedef boost::function< void(TorControlConnection &, const TorControlReply &)> ReplyHandlerCB
 

Public Member Functions

 TorControlConnection (struct event_base *base)
 
 ~TorControlConnection ()
 
bool Connect (const std::string &target, const ConnectionCB &connected, const ConnectionCB &disconnected)
 
bool Disconnect ()
 
bool Command (const std::string &cmd, const ReplyHandlerCB &reply_handler)
 

Public Attributes

boost::signals2::signal< void(TorControlConnection &, const TorControlReply &)> async_handler
 

Static Private Member Functions

static void readcb (struct bufferevent *bev, void *ctx)
 
static void eventcb (struct bufferevent *bev, short what, void *ctx)
 

Private Attributes

boost::function< void(TorControlConnection &)> connected
 
boost::function< void(TorControlConnection &)> disconnected
 
struct event_base * base
 
struct bufferevent * b_conn
 
TorControlReply message
 
std::deque< ReplyHandlerCBreply_handlers
 

Detailed Description

Low-level handling for Tor control connection. Speaks the SMTP-like protocol as defined in torspec/control-spec.txt

Definition at line 69 of file torcontrol.cpp.

Member Typedef Documentation

◆ ConnectionCB

Definition at line 72 of file torcontrol.cpp.

◆ ReplyHandlerCB

Definition at line 73 of file torcontrol.cpp.

Constructor & Destructor Documentation

◆ TorControlConnection()

TorControlConnection::TorControlConnection ( struct event_base *  base)

Create a new TorControlConnection.

Definition at line 121 of file torcontrol.cpp.

◆ ~TorControlConnection()

TorControlConnection::~TorControlConnection ( )

Definition at line 126 of file torcontrol.cpp.

Member Function Documentation

◆ Command()

bool TorControlConnection::Command ( const std::string &  cmd,
const ReplyHandlerCB reply_handler 
)

Send a command, register a handler for the reply. A trailing CRLF is automatically added. Return true on success.

Definition at line 231 of file torcontrol.cpp.

Referenced by TorController::auth_cb(), TorController::authchallenge_cb(), TorController::connected_cb(), and TorController::protocolinfo_cb().

◆ Connect()

bool TorControlConnection::Connect ( const std::string &  target,
const ConnectionCB connected,
const ConnectionCB disconnected 
)

Connect to a Tor control port. target is address of the form host:port. connected is the handler that is called when connection is succesfully established. disconnected is a handler that is called when the connection is broken. Return true on success.

Definition at line 193 of file torcontrol.cpp.

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

◆ Disconnect()

bool TorControlConnection::Disconnect ( )

Disconnect from Tor control port.

Definition at line 223 of file torcontrol.cpp.

Referenced by Connect().

◆ eventcb()

void TorControlConnection::eventcb ( struct bufferevent *  bev,
short  what,
void *  ctx 
)
staticprivate

Definition at line 177 of file torcontrol.cpp.

Referenced by Connect().

◆ readcb()

void TorControlConnection::readcb ( struct bufferevent *  bev,
void *  ctx 
)
staticprivate

Libevent handlers: internal

Definition at line 132 of file torcontrol.cpp.

Referenced by Connect().

Member Data Documentation

◆ async_handler

boost::signals2::signal<void(TorControlConnection &,const TorControlReply &)> TorControlConnection::async_handler

Response handlers for async replies

Definition at line 101 of file torcontrol.cpp.

◆ b_conn

struct bufferevent* TorControlConnection::b_conn
private

Connection to control socket

Definition at line 110 of file torcontrol.cpp.

Referenced by Command(), Connect(), Disconnect(), and ~TorControlConnection().

◆ base

struct event_base* TorControlConnection::base
private

Libevent event base

Definition at line 108 of file torcontrol.cpp.

Referenced by Connect().

◆ connected

boost::function<void(TorControlConnection&)> TorControlConnection::connected
private

Callback when ready for use

Definition at line 104 of file torcontrol.cpp.

Referenced by Connect().

◆ disconnected

boost::function<void(TorControlConnection&)> TorControlConnection::disconnected
private

Callback when connection lost

Definition at line 106 of file torcontrol.cpp.

Referenced by Connect().

◆ message

TorControlReply TorControlConnection::message
private

Message being received

Definition at line 112 of file torcontrol.cpp.

◆ reply_handlers

std::deque<ReplyHandlerCB> TorControlConnection::reply_handlers
private

Response handlers

Definition at line 114 of file torcontrol.cpp.

Referenced by Command().


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