Commit cbe0bca4 by Jonathan Wakely Committed by Jonathan Wakely

Check AI_NUMERICSERV is defined before using it

The AI_NUMERICSERV constant is missing from old Darwin systems, so only
use it if it's supported.

	* include/experimental/internet [AI_NUMERICSERV]
	(resolver_base::numeric_service): Define conditionally.
	* testsuite/experimental/net/internet/resolver/base.cc: Test it
	conditionally.
	* testsuite/experimental/net/internet/resolver/ops/lookup.cc:
	Likewise.

From-SVN: r267809
parent c3799b16
2019-01-10 Jonathan Wakely <jwakely@redhat.com>
* include/experimental/internet [AI_NUMERICSERV]
(resolver_base::numeric_service): Define conditionally.
* testsuite/experimental/net/internet/resolver/base.cc: Test it
conditionally.
* testsuite/experimental/net/internet/resolver/ops/lookup.cc:
Likewise.
2019-01-10 Ville Voutilainen <ville.voutilainen@gmail.com> 2019-01-10 Ville Voutilainen <ville.voutilainen@gmail.com>
Jonathan Wakely <jwakely@redhat.com> Jonathan Wakely <jwakely@redhat.com>
......
...@@ -1629,7 +1629,9 @@ namespace ip ...@@ -1629,7 +1629,9 @@ namespace ip
__flags_passive = AI_PASSIVE, __flags_passive = AI_PASSIVE,
__flags_canonical_name = AI_CANONNAME, __flags_canonical_name = AI_CANONNAME,
__flags_numeric_host = AI_NUMERICHOST, __flags_numeric_host = AI_NUMERICHOST,
#ifdef AI_NUMERICSERV
__flags_numeric_service = AI_NUMERICSERV, __flags_numeric_service = AI_NUMERICSERV,
#endif
__flags_v4_mapped = AI_V4MAPPED, __flags_v4_mapped = AI_V4MAPPED,
__flags_all_matching = AI_ALL, __flags_all_matching = AI_ALL,
__flags_address_configured = AI_ADDRCONFIG __flags_address_configured = AI_ADDRCONFIG
...@@ -1637,7 +1639,9 @@ namespace ip ...@@ -1637,7 +1639,9 @@ namespace ip
static constexpr flags passive = __flags_passive; static constexpr flags passive = __flags_passive;
static constexpr flags canonical_name = __flags_canonical_name; static constexpr flags canonical_name = __flags_canonical_name;
static constexpr flags numeric_host = __flags_numeric_host; static constexpr flags numeric_host = __flags_numeric_host;
#ifdef AI_NUMERICSERV
static constexpr flags numeric_service = __flags_numeric_service; static constexpr flags numeric_service = __flags_numeric_service;
#endif
static constexpr flags v4_mapped = __flags_v4_mapped; static constexpr flags v4_mapped = __flags_v4_mapped;
static constexpr flags all_matching = __flags_all_matching; static constexpr flags all_matching = __flags_all_matching;
static constexpr flags address_configured = __flags_address_configured; static constexpr flags address_configured = __flags_address_configured;
......
...@@ -49,7 +49,9 @@ test01() ...@@ -49,7 +49,9 @@ test01()
(void) resolver::passive; (void) resolver::passive;
(void) resolver::canonical_name; (void) resolver::canonical_name;
(void) resolver::numeric_host; (void) resolver::numeric_host;
#ifdef AI_NUMERICSERV
(void) resolver::numeric_service; (void) resolver::numeric_service;
#endif
(void) resolver::v4_mapped; (void) resolver::v4_mapped;
(void) resolver::all_matching; (void) resolver::all_matching;
(void) resolver::address_configured; (void) resolver::address_configured;
......
...@@ -49,7 +49,10 @@ test02() ...@@ -49,7 +49,10 @@ test02()
std::error_code ec; std::error_code ec;
io_context ctx; io_context ctx;
ip::tcp::resolver resolv(ctx); ip::tcp::resolver resolv(ctx);
auto flags = ip::resolver_base::numeric_host | ip::tcp::resolver::numeric_service; auto flags = ip::resolver_base::numeric_host;
#ifdef AI_NUMERICSERV
flags |= ip::tcp::resolver::numeric_service;
#endif
auto addrs = resolv.resolve("127.0.0.1", "42", flags, ec); auto addrs = resolv.resolve("127.0.0.1", "42", flags, ec);
VERIFY( !ec ); VERIFY( !ec );
VERIFY( addrs.size() > 0 ); VERIFY( addrs.size() > 0 );
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment