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
This commit is contained in:
parent
c3799b164f
commit
cbe0bca404
@ -1,3 +1,12 @@
|
||||
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>
|
||||
Jonathan Wakely <jwakely@redhat.com>
|
||||
|
||||
|
@ -1629,7 +1629,9 @@ namespace ip
|
||||
__flags_passive = AI_PASSIVE,
|
||||
__flags_canonical_name = AI_CANONNAME,
|
||||
__flags_numeric_host = AI_NUMERICHOST,
|
||||
#ifdef AI_NUMERICSERV
|
||||
__flags_numeric_service = AI_NUMERICSERV,
|
||||
#endif
|
||||
__flags_v4_mapped = AI_V4MAPPED,
|
||||
__flags_all_matching = AI_ALL,
|
||||
__flags_address_configured = AI_ADDRCONFIG
|
||||
@ -1637,7 +1639,9 @@ namespace ip
|
||||
static constexpr flags passive = __flags_passive;
|
||||
static constexpr flags canonical_name = __flags_canonical_name;
|
||||
static constexpr flags numeric_host = __flags_numeric_host;
|
||||
#ifdef AI_NUMERICSERV
|
||||
static constexpr flags numeric_service = __flags_numeric_service;
|
||||
#endif
|
||||
static constexpr flags v4_mapped = __flags_v4_mapped;
|
||||
static constexpr flags all_matching = __flags_all_matching;
|
||||
static constexpr flags address_configured = __flags_address_configured;
|
||||
|
@ -49,7 +49,9 @@ test01()
|
||||
(void) resolver::passive;
|
||||
(void) resolver::canonical_name;
|
||||
(void) resolver::numeric_host;
|
||||
#ifdef AI_NUMERICSERV
|
||||
(void) resolver::numeric_service;
|
||||
#endif
|
||||
(void) resolver::v4_mapped;
|
||||
(void) resolver::all_matching;
|
||||
(void) resolver::address_configured;
|
||||
|
@ -49,7 +49,10 @@ test02()
|
||||
std::error_code ec;
|
||||
io_context 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);
|
||||
VERIFY( !ec );
|
||||
VERIFY( addrs.size() > 0 );
|
||||
|
Loading…
Reference in New Issue
Block a user