diff --git a/libs/asiotap/include/asiotap/types/ip_endpoint.hpp b/libs/asiotap/include/asiotap/types/ip_endpoint.hpp index 88eb39d1..322a1b06 100644 --- a/libs/asiotap/include/asiotap/types/ip_endpoint.hpp +++ b/libs/asiotap/include/asiotap/types/ip_endpoint.hpp @@ -199,9 +199,9 @@ namespace asiotap template inline boost::asio::ip::udp::endpoint resolve(const base_ip_endpoint& ep, typename base_ip_endpoint::resolver& resolver, typename base_ip_endpoint::resolver::protocol_type protocol, typename base_ip_endpoint::resolver::query::flags flags, const std::string& default_service) { - (void)resolver; - (void)protocol; - (void)flags; + static_cast(resolver); + static_cast(protocol); + static_cast(flags); if (ep.has_port()) { @@ -226,20 +226,9 @@ namespace asiotap template inline void async_resolve(const base_ip_endpoint& ep, typename base_ip_endpoint::resolver& resolver, typename base_ip_endpoint::resolver::protocol_type protocol, typename base_ip_endpoint::resolver::query::flags flags, const std::string& default_service, typename base_ip_endpoint::handler handler) { - try - { - boost::asio::ip::udp::endpoint result = resolve(ep, resolver, protocol, flags, default_service); - - auto it = base_ip_endpoint::resolver::iterator::create(result, result.address().to_string(), boost::lexical_cast(result.port())); - - handler(boost::system::error_code(), it); - } - catch (boost::system::system_error& ex) - { - typename base_ip_endpoint::resolver::iterator it; + typename base_ip_endpoint::resolver::query query(protocol, ep.address().to_string(), ep.has_port() ? boost::lexical_cast(ep.port()) : default_service, flags); - handler(ex.code(), it); - } + resolver.async_resolve(query, handler); } /**