mirror of
https://github.com/monero-project/monero.git
synced 2025-05-03 06:24:53 -04:00
Adding initial support for broadcasting transactions over Tor
- Support for ".onion" in --add-exclusive-node and --add-peer - Add --anonymizing-proxy for outbound Tor connections - Add --anonymous-inbounds for inbound Tor connections - Support for sharing ".onion" addresses over Tor connections - Support for broadcasting transactions received over RPC exclusively over Tor (else broadcast over public IP when Tor not enabled).
This commit is contained in:
parent
1e5cd3b35a
commit
973403bc9f
39 changed files with 4298 additions and 831 deletions
|
@ -545,6 +545,8 @@ TEST(StringTools, GetIpInt32)
|
|||
|
||||
TEST(NetUtils, IPv4NetworkAddress)
|
||||
{
|
||||
static_assert(epee::net_utils::ipv4_network_address::get_type_id() == epee::net_utils::address_type::ipv4, "bad ipv4 type id");
|
||||
|
||||
const auto ip1 = boost::endian::native_to_big(0x330012FFu);
|
||||
const auto ip_loopback = boost::endian::native_to_big(0x7F000001u);
|
||||
const auto ip_local = boost::endian::native_to_big(0x0A000000u);
|
||||
|
@ -555,7 +557,7 @@ TEST(NetUtils, IPv4NetworkAddress)
|
|||
EXPECT_STREQ("51.0.18.255", address1.host_str().c_str());
|
||||
EXPECT_FALSE(address1.is_loopback());
|
||||
EXPECT_FALSE(address1.is_local());
|
||||
EXPECT_EQ(epee::net_utils::ipv4_network_address::ID, address1.get_type_id());
|
||||
EXPECT_EQ(epee::net_utils::ipv4_network_address::get_type_id(), address1.get_type_id());
|
||||
EXPECT_EQ(ip1, address1.ip());
|
||||
EXPECT_EQ(65535, address1.port());
|
||||
EXPECT_TRUE(epee::net_utils::ipv4_network_address{std::move(address1)} == address1);
|
||||
|
@ -568,7 +570,7 @@ TEST(NetUtils, IPv4NetworkAddress)
|
|||
EXPECT_STREQ("127.0.0.1", loopback.host_str().c_str());
|
||||
EXPECT_TRUE(loopback.is_loopback());
|
||||
EXPECT_FALSE(loopback.is_local());
|
||||
EXPECT_EQ(epee::net_utils::ipv4_network_address::ID, address1.get_type_id());
|
||||
EXPECT_EQ(epee::net_utils::ipv4_network_address::get_type_id(), address1.get_type_id());
|
||||
EXPECT_EQ(ip_loopback, loopback.ip());
|
||||
EXPECT_EQ(0, loopback.port());
|
||||
|
||||
|
@ -624,7 +626,9 @@ TEST(NetUtils, NetworkAddress)
|
|||
constexpr static bool is_local() noexcept { return false; }
|
||||
static std::string str() { return {}; }
|
||||
static std::string host_str() { return {}; }
|
||||
constexpr static uint8_t get_type_id() noexcept { return uint8_t(-1); }
|
||||
constexpr static epee::net_utils::address_type get_type_id() noexcept { return epee::net_utils::address_type(-1); }
|
||||
constexpr static epee::net_utils::zone get_zone() noexcept { return epee::net_utils::zone::invalid; }
|
||||
constexpr static bool is_blockable() noexcept { return false; }
|
||||
};
|
||||
|
||||
const epee::net_utils::network_address empty;
|
||||
|
@ -634,7 +638,9 @@ TEST(NetUtils, NetworkAddress)
|
|||
EXPECT_STREQ("<none>", empty.host_str().c_str());
|
||||
EXPECT_FALSE(empty.is_loopback());
|
||||
EXPECT_FALSE(empty.is_local());
|
||||
EXPECT_EQ(0, empty.get_type_id());
|
||||
EXPECT_EQ(epee::net_utils::address_type::invalid, empty.get_type_id());
|
||||
EXPECT_EQ(epee::net_utils::zone::invalid, empty.get_zone());
|
||||
EXPECT_FALSE(empty.is_blockable());
|
||||
EXPECT_THROW(empty.as<custom_address>(), std::bad_cast);
|
||||
|
||||
epee::net_utils::network_address address1{
|
||||
|
@ -650,7 +656,9 @@ TEST(NetUtils, NetworkAddress)
|
|||
EXPECT_STREQ("51.0.18.255", address1.host_str().c_str());
|
||||
EXPECT_FALSE(address1.is_loopback());
|
||||
EXPECT_FALSE(address1.is_local());
|
||||
EXPECT_EQ(epee::net_utils::ipv4_network_address::ID, address1.get_type_id());
|
||||
EXPECT_EQ(epee::net_utils::ipv4_network_address::get_type_id(), address1.get_type_id());
|
||||
EXPECT_EQ(epee::net_utils::zone::public_, address1.get_zone());
|
||||
EXPECT_TRUE(address1.is_blockable());
|
||||
EXPECT_NO_THROW(address1.as<epee::net_utils::ipv4_network_address>());
|
||||
EXPECT_THROW(address1.as<custom_address>(), std::bad_cast);
|
||||
|
||||
|
@ -667,7 +675,9 @@ TEST(NetUtils, NetworkAddress)
|
|||
EXPECT_STREQ("127.0.0.1", loopback.host_str().c_str());
|
||||
EXPECT_TRUE(loopback.is_loopback());
|
||||
EXPECT_FALSE(loopback.is_local());
|
||||
EXPECT_EQ(epee::net_utils::ipv4_network_address::ID, address1.get_type_id());
|
||||
EXPECT_EQ(epee::net_utils::ipv4_network_address::get_type_id(), address1.get_type_id());
|
||||
EXPECT_EQ(epee::net_utils::zone::public_, address1.get_zone());
|
||||
EXPECT_EQ(epee::net_utils::ipv4_network_address::get_type_id(), address1.get_type_id());
|
||||
|
||||
const epee::net_utils::network_address local{
|
||||
epee::net_utils::ipv4_network_address{ip_local, 8080}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue