*/
 #include "dns/dnsresolver.h"
 
+#include <algorithm>
 #include <iostream>
 
 #include <boost/assert.hpp>
 using boost::net::dns::resource_base_t;
 using boost::net::dns::message;
 using boost::net::dns::rr_list_t;
+using boost::net::dns::type_t;
 using boost::shared_ptr;
 using I2n::Logger::GlobalLogger;
 
         return true;
     }
 
-    GlobalLogger.info() << "Resolved IP(s) for host : "
-            << HostDnsAddress << endl;
+    GlobalLogger.info() << "Resolved IP(s) for host : " << HostDnsAddress << endl;
 
     try
     {
-        rr_list_t answers_list = fill_answers_list( HostDnsAddress, NameServer);
+        rr_list_t answers_list = fill_answers_list( HostDnsAddress, NameServer, boost::net::dns::type_a );
 
         size_t resolved_ip_count = answers_list.size();
         if ( resolved_ip_count < 1 )
     size_t list_size_before = ResolvedHostAddressList.size();
 
     HostAddress host_address = ResolvedHostAddressList.front();
-    ResolvedHostAddressList.pop_front();
     string destination_ip = host_address.get_ip();
     uint32_t ttl = host_address.get_ttl().get_updated_value();
-    ResolvedHostAddressList.push_back( host_address );
+
+    rotate( ResolvedHostAddressList.begin(), ++ResolvedHostAddressList.begin(), ResolvedHostAddressList.end() );
 
     size_t list_size_after = ResolvedHostAddressList.size();
 
 }
 
 /**
- * @brief Check if hostname is already an IPv4 address. Will insert it into
+ * @brief Check if hostname is already an IP address. Will insert it into
  * #ResolvedHostAddressList.
  *
  * @param host_dns_address
- * @return bool True if already an ip, false if not
+ * @return bool @c true if the address is already an IP, @c false if not.
  **/
 bool DnsResolver::handle_ip_address()
 {
 
 rr_list_t DnsResolver::fill_answers_list(
         const string &host_dns_address,
-        const string &name_server
+        const string &name_server,
+        const type_t message_type
 ) const
 {
     BOOST_ASSERT( !host_dns_address.empty() );
     address nameServer( address::from_string( name_server ) );
     boost::net::dns::resolve resolver;
     resolver.addServer( nameServer );
-    message dns_message( host_dns_address, boost::net::dns::type_a );
+
+    message dns_message( host_dns_address, message_type );
     message& dns_packet = resolver.query( dns_message );
+
     // Note: perform a copy of each element from one vector to the other, do not reference
     return *dns_packet.answers();
 }