Bitcoin
|
Public Types | |
typedef std::function< void(TorControlConnection &)> | ConnectionCB |
typedef std::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) |
void | 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 | |
std::function< void(TorControlConnection &)> | connected |
std::function< void(TorControlConnection &)> | disconnected |
struct event_base * | base |
struct bufferevent * | b_conn |
TorControlReply | message |
std::deque< ReplyHandlerCB > | reply_handlers |
Low-level handling for Tor control connection. Speaks the SMTP-like protocol as defined in torspec/control-spec.txt
typedef std::function<void(TorControlConnection&)> TorControlConnection::ConnectionCB |
typedef std::function<void(TorControlConnection &,const TorControlReply &)> TorControlConnection::ReplyHandlerCB |
|
explicit |
Create a new TorControlConnection.
TorControlConnection::~TorControlConnection | ( | ) |
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.
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 successfully established. disconnected is a handler that is called when the connection is broken. Return true on success.
void TorControlConnection::Disconnect | ( | ) |
Disconnect from Tor control port.
|
staticprivate |
|
staticprivate |
Libevent handlers: internal
boost::signals2::signal<void(TorControlConnection &,const TorControlReply &)> TorControlConnection::async_handler |
Response handlers for async replies
|
private |
Connection to control socket
|
private |
Libevent event base
|
private |
Callback when ready for use
|
private |
Callback when connection lost
|
private |
Message being received
|
private |
Response handlers