Cache->update("host2_3.test", ips);
}
- // cname.test --> host1.test
- Cache->update("cname.test", Cname("host1.test", 35) );
+ {
+ // cname.test --> host1.test
+ Cache->update("cname.test", Cname("host1.test", 35) );
- // cname2.test --> cname.test --> host1.test
- Cache->update("cname2.test", Cname("cname.test", 33) );
+ // cname2.test --> cname.test --> host1.test
+ Cache->update("cname2.test", Cname("cname.test", 33) );
- // cname3.test --> cname2.test --> cname.test --> host1.test
- Cache->update("cname3.test", Cname("cname2.test", 37) );
+ // cname3.test --> cname2.test --> cname.test --> host1.test
+ Cache->update("cname3.test", Cname("cname2.test", 37) );
+ }
+
+ {
+ HostAddressVec ips;
+ ips.push_back( HostAddress( address::from_string("192.168.42.4"),
+ 0 ) );
+ ips.push_back( HostAddress( address::from_string("192.168.42.5"),
+ resolved_ip_ttl_threshold-1 ) );
+ ips.push_back( HostAddress( address::from_string("192.168.42.6"),
+ resolved_ip_ttl_threshold ) );
+ ips.push_back( HostAddress( address::from_string("192.168.42.7"),
+ resolved_ip_ttl_threshold+1 ) );
+ Cache->update("host_outdated.test", ips);
+
+ Cache->update( "cname_outdated.test",
+ Cname("host_outdated.test", resolved_ip_ttl_threshold) );
+ Cache->update( "cname_up_to_date.test",
+ Cname("host_outdated.test", resolved_ip_ttl_threshold+1));
+ }
BOOST_TEST_MESSAGE( "Done filling cache." );
}
cache->update( "skip_chain_third.test",
Cname("skip_chain_fourth.test", ttl3) );
HostAddressVec ips;
- ips.push_back( HostAddress( address::from_string("192.168.42.4"), ttl4) );
+ ips.push_back( HostAddress( address::from_string("192.168.42.100"),
+ ttl4 ) );
cache->update("skip_chain_fourth.test", ips);
}
// not testing Ttl set time since is private
}
+BOOST_AUTO_TEST_CASE( cache_outdated_test )
+{
+ bool check_up_to_date = false;
+ HostAddressVec ips = Cache->get_ips("host_outdated.test", check_up_to_date);
+ BOOST_CHECK_EQUAL( ips.size(), 4 );
+ ips = Cache->get_ips_recursive("host_outdated.test", check_up_to_date);
+ BOOST_CHECK_EQUAL( ips.size(), 4 );
+ Cname cname = Cache->get_cname("cname_outdated.test", check_up_to_date);
+ BOOST_CHECK( !cname.Host.empty() );
+ ips = Cache->get_ips_recursive("cname_outdated.test", check_up_to_date);
+ BOOST_CHECK_EQUAL( ips.size(), 4 );
+ ips = Cache->get_ips_recursive("cname_up_to_date.test", check_up_to_date);
+ BOOST_CHECK_EQUAL( ips.size(), 4 );
+
+ check_up_to_date = true;
+ ips = Cache->get_ips( "host_outdated.test", check_up_to_date );
+ BOOST_CHECK_EQUAL( ips.size(), 1 );
+ ips = Cache->get_ips_recursive("host_outdated.test", check_up_to_date);
+ BOOST_CHECK_EQUAL( ips.size(), 1 );
+ cname = Cache->get_cname("cname_outdated.test", check_up_to_date);
+ BOOST_CHECK( cname.Host.empty() );
+ ips = Cache->get_ips_recursive("cname_outdated.test", check_up_to_date);
+ BOOST_CHECK_EQUAL( ips.size(), 0 );
+ ips = Cache->get_ips_recursive("cname_up_to_date.test", check_up_to_date);
+ BOOST_CHECK_EQUAL( ips.size(), 1 );
+}
+
+
BOOST_AUTO_TEST_SUITE_END() // of TestDnsCache
resolver->cancel_resolve();
io_serv->stop();
BOOST_TEST_MESSAGE( "Stopped io_service" );
+ BOOST_CHECK( was_success );
+ BOOST_CHECK_EQUAL( cname_count, 0 );
}