rippled
Loading...
Searching...
No Matches
IPEndpointCommon.h
1#include <xrpl/basics/random.h>
2#include <xrpl/beast/net/IPEndpoint.h>
3
4namespace beast {
5namespace IP {
6
7inline Endpoint
8randomEP(bool v4 = true)
9{
10 using namespace ripple;
11 auto dv4 = []() -> AddressV4::bytes_type {
12 return {
13 {static_cast<std::uint8_t>(rand_int<int>(1, UINT8_MAX)),
14 static_cast<std::uint8_t>(rand_int<int>(1, UINT8_MAX)),
15 static_cast<std::uint8_t>(rand_int<int>(1, UINT8_MAX)),
16 static_cast<std::uint8_t>(rand_int<int>(1, UINT8_MAX))}};
17 };
18 auto dv6 = []() -> AddressV6::bytes_type {
19 return {
20 {static_cast<std::uint8_t>(rand_int<int>(1, UINT8_MAX)),
21 static_cast<std::uint8_t>(rand_int<int>(1, UINT8_MAX)),
22 static_cast<std::uint8_t>(rand_int<int>(1, UINT8_MAX)),
23 static_cast<std::uint8_t>(rand_int<int>(1, UINT8_MAX)),
24 static_cast<std::uint8_t>(rand_int<int>(1, UINT8_MAX)),
25 static_cast<std::uint8_t>(rand_int<int>(1, UINT8_MAX)),
26 static_cast<std::uint8_t>(rand_int<int>(1, UINT8_MAX)),
27 static_cast<std::uint8_t>(rand_int<int>(1, UINT8_MAX)),
28 static_cast<std::uint8_t>(rand_int<int>(1, UINT8_MAX)),
29 static_cast<std::uint8_t>(rand_int<int>(1, UINT8_MAX)),
30 static_cast<std::uint8_t>(rand_int<int>(1, UINT8_MAX)),
31 static_cast<std::uint8_t>(rand_int<int>(1, UINT8_MAX)),
32 static_cast<std::uint8_t>(rand_int<int>(1, UINT8_MAX)),
33 static_cast<std::uint8_t>(rand_int<int>(1, UINT8_MAX)),
34 static_cast<std::uint8_t>(rand_int<int>(1, UINT8_MAX)),
35 static_cast<std::uint8_t>(rand_int<int>(1, UINT8_MAX))}};
36 };
37 return Endpoint{
38 v4 ? Address{AddressV4{dv4()}} : Address{AddressV6{dv6()}},
39 rand_int<std::uint16_t>(1, UINT16_MAX)};
40}
41
42} // namespace IP
43} // namespace beast
A version-independent IP address and port combination.
Definition IPEndpoint.h:19
boost::asio::ip::address_v6 AddressV6
Definition IPAddressV6.h:11
Endpoint randomEP(bool v4=true)
boost::asio::ip::address_v4 AddressV4
Definition IPAddressV4.h:11
boost::asio::ip::address Address
Definition IPAddress.h:20
Use hash_* containers for keys that do not need a cryptographically secure hashing algorithm.
Definition algorithm.h:6