BOOST_ASSERT( 1 <= answers_list.size() );
BOOST_ASSERT( resolved_host_address_list != NULL );
+ size_t cname_count = 0;
+
BOOST_FOREACH( shared_ptr<resource_base_t> resource_record, answers_list )
{
if ( resource_record )
// 'AAAA' resource records carry IPv6 addresses
append_resolved_ipv6( resource_record, resolved_host_address_list );
break;
+ case boost::net::dns::type_cname:
+ // 'CNAME' resource records that carry aliases
+ cname_count++;
default:
// other types of resource records
break;
size_t answer_list_size = answers_list.size();
size_t resolve_host_list_size = resolved_host_address_list->size();
bool size_equal = ( resolve_host_list_size == answer_list_size );
- bool size_equal_minus_cname = ( resolve_host_list_size == ( answer_list_size - 1 ) );
+ bool size_equal_minus_cname = ( resolve_host_list_size == ( answer_list_size - cname_count ) );
BOOST_ASSERT( size_equal || size_equal_minus_cname );
}