![]() |
Bitcoin Core 22.99.0
P2P Digital Currency
|
Low-level handling for Tor control connection. More...
#include <torcontrol.h>
Public Types | |
| typedef std::function< void(TorControlConnection &)> | ConnectionCB |
| typedef std::function< void(TorControlConnection &, const TorControlReply &)> | ReplyHandlerCB |
Public Member Functions | |
| TorControlConnection (struct event_base *base) | |
| Create a new TorControlConnection. More... | |
| ~TorControlConnection () | |
| bool | Connect (const std::string &tor_control_center, const ConnectionCB &connected, const ConnectionCB &disconnected) |
| Connect to a Tor control port. More... | |
| void | Disconnect () |
| Disconnect from Tor control port. More... | |
| bool | Command (const std::string &cmd, const ReplyHandlerCB &reply_handler) |
| Send a command, register a handler for the reply. More... | |
Public Attributes | |
| boost::signals2::signal< void(TorControlConnection &, const TorControlReply &)> | async_handler |
| Response handlers for async replies. More... | |
Static Private Member Functions | |
| static void | readcb (struct bufferevent *bev, void *ctx) |
| Libevent handlers: internal. More... | |
| static void | eventcb (struct bufferevent *bev, short what, void *ctx) |
Private Attributes | |
| std::function< void(TorControlConnection &)> | connected |
| Callback when ready for use. More... | |
| std::function< void(TorControlConnection &)> | disconnected |
| Callback when connection lost. More... | |
| struct event_base * | base |
| Libevent event base. More... | |
| struct bufferevent * | b_conn |
| Connection to control socket. More... | |
| TorControlReply | message |
| Message being received. More... | |
| std::deque< ReplyHandlerCB > | reply_handlers |
| Response handlers. More... | |
Low-level handling for Tor control connection.
Speaks the SMTP-like protocol as defined in torspec/control-spec.txt
Definition at line 55 of file torcontrol.h.
| typedef std::function<void(TorControlConnection&)> TorControlConnection::ConnectionCB |
Definition at line 58 of file torcontrol.h.
| typedef std::function<void(TorControlConnection &,const TorControlReply &)> TorControlConnection::ReplyHandlerCB |
Definition at line 59 of file torcontrol.h.
|
explicit |
Create a new TorControlConnection.
Definition at line 61 of file torcontrol.cpp.
| TorControlConnection::~TorControlConnection | ( | ) |
Definition at line 66 of file torcontrol.cpp.
| 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 178 of file torcontrol.cpp.
| bool TorControlConnection::Connect | ( | const std::string & | tor_control_center, |
| const ConnectionCB & | connected, | ||
| const ConnectionCB & | disconnected | ||
| ) |
Connect to a Tor control port.
tor_control_center 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.
Definition at line 134 of file torcontrol.cpp.
| void TorControlConnection::Disconnect | ( | ) |
Disconnect from Tor control port.
Definition at line 171 of file torcontrol.cpp.
|
staticprivate |
|
staticprivate |
Libevent handlers: internal.
Definition at line 72 of file torcontrol.cpp.
| boost::signals2::signal<void(TorControlConnection &,const TorControlReply &)> TorControlConnection::async_handler |
Response handlers for async replies.
Definition at line 87 of file torcontrol.h.
|
private |
Connection to control socket.
Definition at line 96 of file torcontrol.h.
|
private |
Libevent event base.
Definition at line 94 of file torcontrol.h.
|
private |
Callback when ready for use.
Definition at line 90 of file torcontrol.h.
|
private |
Callback when connection lost.
Definition at line 92 of file torcontrol.h.
|
private |
Message being received.
Definition at line 98 of file torcontrol.h.
|
private |
Response handlers.
Definition at line 100 of file torcontrol.h.