25 boost::system::error_code ec;
26 Address const result{boost::asio::ip::make_address(s, ec)};
27 if (!BEAST_EXPECTS(!ec, ec.message()))
29 if (!BEAST_EXPECTS(result.is_v4(), s +
" not v4"))
31 if (!BEAST_EXPECTS(result.to_v4().to_uint() == value, s +
" value mismatch"))
33 BEAST_EXPECTS(result.to_string() == (normal.empty() ? s : normal), s +
" as string");
113 AddressV4::bytes_type
const d1 = {{10, 0, 0, 1}};
115 BEAST_EXPECT(v4.to_bytes()[0] == 10);
116 BEAST_EXPECT(v4.to_bytes()[1] == 0);
117 BEAST_EXPECT(v4.to_bytes()[2] == 0);
118 BEAST_EXPECT(v4.to_bytes()[3] == 1);
120 BEAST_EXPECT((~((0xff) << 16)) == 0xff00ffff);
122 auto d2 = v4.to_bytes();
125 BEAST_EXPECT(v4.to_bytes()[0] == 10);
126 BEAST_EXPECT(v4.to_bytes()[1] == 10);
127 BEAST_EXPECT(v4.to_bytes()[2] == 0);
128 BEAST_EXPECT(v4.to_bytes()[3] == 1);
213 "2001:db8:a0b:12f0::1",
214 {{32, 01, 13, 184, 10, 11, 18, 240, 0, 0, 0, 0, 0, 0, 0, 1}},
217 "[2001:db8:a0b:12f0::1]:8",
218 {{32, 01, 13, 184, 10, 11, 18, 240, 0, 0, 0, 0, 0, 0, 0, 1}},
221 "[2001:2002:2003:2004:2005:2006:2007:2008]:65535",
222 {{32, 1, 32, 2, 32, 3, 32, 4, 32, 5, 32, 6, 32, 7, 32, 8}},
225 "2001:2002:2003:2004:2005:2006:2007:2008 65535",
226 {{32, 1, 32, 2, 32, 3, 32, 4, 32, 5, 32, 6, 32, 7, 32, 8}},
228 "[2001:2002:2003:2004:2005:2006:2007:2008]:65535");
232 AddressV4::bytes_type d = {{127, 0, 0, 1}};
239 BEAST_EXPECT(
to_string(ep) ==
"127.0.0.1:80");
242 boost::asio::ip::make_address_v6(boost::asio::ip::v4_mapped,
AddressV4{d}), 80);
252 BEAST_EXPECT(
get_class(ep.to_v4()) ==
'A');
258 BEAST_EXPECT(
to_string(ep) ==
"10.0.0.1");
260 ep =
Endpoint(boost::asio::ip::make_address_v6(boost::asio::ip::v4_mapped,
AddressV4{d}));
262 get_class(boost::asio::ip::make_address_v4(boost::asio::ip::v4_mapped, ep.to_v6())) ==
271 d = {{166, 78, 151, 147}};
278 BEAST_EXPECT(
to_string(ep) ==
"166.78.151.147");
280 ep =
Endpoint(boost::asio::ip::make_address_v6(boost::asio::ip::v4_mapped,
AddressV4{d}));
289 AddressV6::bytes_type
const d2 = {{253, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1}};
305 BEAST_EXPECT(ep.address() == ep1.address());
306 BEAST_EXPECT(ep1.port() == 2016);
310 BEAST_EXPECT(ep.address() == ep2.address());
311 BEAST_EXPECT(ep2.port() == 2016);
312 BEAST_EXPECT(ep1 == ep2);
316 BEAST_EXPECT(ep.address() == ep3.address());
317 BEAST_EXPECT(ep3.port() == 2016);
318 BEAST_EXPECT(ep2 == ep3);
322 BEAST_EXPECT(ep.address() == ep4.address());
323 BEAST_EXPECT(ep4.port() == 2016);
324 BEAST_EXPECT(ep3 == ep4);
334 BEAST_EXPECT(ep.port() == 2017);
335 BEAST_EXPECT(ep.address() ==
AddressV6{});
360 failParseEP(
"[1234:5678:90ab:cdef:1234:5678:90ab:cdef:1111]:1");
361 failParseEP(
"[1234:5678:90ab:cdef:1234:5678:90ab:cdef:1111]:12345");
368 constexpr auto items{100};
370 for (
auto i = 0; i < items; ++i)
376 BEAST_EXPECT(max_lf > 0.90);