aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/compat/compat.h25
-rw-r--r--src/torcontrol.cpp16
-rw-r--r--src/torcontrol.h11
3 files changed, 28 insertions, 24 deletions
diff --git a/src/compat/compat.h b/src/compat/compat.h
index 8195bceaec..435a403552 100644
--- a/src/compat/compat.h
+++ b/src/compat/compat.h
@@ -22,19 +22,18 @@
#include <ws2tcpip.h>
#include <cstdint>
#else
-#include <fcntl.h>
-#include <sys/mman.h>
-#include <sys/select.h>
-#include <sys/socket.h>
-#include <sys/types.h>
-#include <net/if.h>
-#include <netinet/in.h>
-#include <netinet/tcp.h>
-#include <arpa/inet.h>
-#include <ifaddrs.h>
-#include <limits.h>
-#include <netdb.h>
-#include <unistd.h>
+#include <arpa/inet.h> // IWYU pragma: export
+#include <fcntl.h> // IWYU pragma: export
+#include <ifaddrs.h> // IWYU pragma: export
+#include <net/if.h> // IWYU pragma: export
+#include <netdb.h> // IWYU pragma: export
+#include <netinet/in.h> // IWYU pragma: export
+#include <netinet/tcp.h> // IWYU pragma: export
+#include <sys/mman.h> // IWYU pragma: export
+#include <sys/select.h> // IWYU pragma: export
+#include <sys/socket.h> // IWYU pragma: export
+#include <sys/types.h> // IWYU pragma: export
+#include <unistd.h> // IWYU pragma: export
#endif
// We map Linux / BSD error functions and codes, to the equivalent
diff --git a/src/torcontrol.cpp b/src/torcontrol.cpp
index a8d6fb4b3f..9cf976a700 100644
--- a/src/torcontrol.cpp
+++ b/src/torcontrol.cpp
@@ -14,14 +14,26 @@
#include <net.h>
#include <netaddress.h>
#include <netbase.h>
+#include <random.h>
+#include <tinyformat.h>
+#include <util/check.h>
+#include <util/fs.h>
#include <util/readwritefile.h>
#include <util/strencodings.h>
+#include <util/string.h>
#include <util/thread.h>
#include <util/time.h>
+#include <algorithm>
+#include <cassert>
+#include <cstdlib>
#include <deque>
#include <functional>
+#include <map>
+#include <optional>
#include <set>
+#include <thread>
+#include <utility>
#include <vector>
#include <event2/buffer.h>
@@ -79,15 +91,15 @@ void TorControlConnection::readcb(struct bufferevent *bev, void *ctx)
if (s.size() < 4) // Short line
continue;
// <status>(-|+| )<data><CRLF>
- self->message.code = LocaleIndependentAtoi<int>(s.substr(0,3));
+ self->message.code = ToIntegral<int>(s.substr(0, 3)).value_or(0);
self->message.lines.push_back(s.substr(4));
char ch = s[3]; // '-','+' or ' '
if (ch == ' ') {
// Final line, dispatch reply and clean up
if (self->message.code >= 600) {
+ // (currently unused)
// Dispatch async notifications to async handler
// Synchronous and asynchronous messages are never interleaved
- self->async_handler(*self, self->message);
} else {
if (!self->reply_handlers.empty()) {
// Invoke reply handler with message
diff --git a/src/torcontrol.h b/src/torcontrol.h
index afc5413db0..1a9065b01a 100644
--- a/src/torcontrol.h
+++ b/src/torcontrol.h
@@ -11,19 +11,14 @@
#include <netaddress.h>
#include <util/fs.h>
-#include <boost/signals2/signal.hpp>
+#include <event2/util.h>
-#include <event2/bufferevent.h>
-#include <event2/event.h>
-
-#include <cstdlib>
+#include <cstdint>
#include <deque>
#include <functional>
#include <string>
#include <vector>
-class CService;
-
extern const std::string DEFAULT_TOR_CONTROL;
static const bool DEFAULT_LISTEN_ONION = true;
@@ -83,8 +78,6 @@ public:
*/
bool Command(const std::string &cmd, const ReplyHandlerCB& reply_handler);
- /** Response handlers for async replies */
- boost::signals2::signal<void(TorControlConnection &,const TorControlReply &)> async_handler;
private:
/** Callback when ready for use */
std::function<void(TorControlConnection&)> connected;