@@ -524,9 +524,9 @@ mod async_resolver_test {
524
524
}
525
525
}
526
526
527
- /// Test lookup cache
527
+ /// Test inner lookup cache
528
528
#[ tokio:: test]
529
- async fn lookup_cache ( ) {
529
+ async fn inner_lookup_cache_available ( ) {
530
530
let mut resolver = AsyncResolver :: new ( ResolverConfig :: default ( ) ) ;
531
531
resolver. cache . set_max_size ( 1 ) ;
532
532
@@ -537,7 +537,40 @@ mod async_resolver_test {
537
537
538
538
resolver. cache . add ( domain_name, resource_record) ;
539
539
540
- let _response = resolver. lookup ( "example.com" , "UDP" , "A" , "IN" ) . await ;
540
+ let domain_name = DomainName :: new_from_string ( "example.com" . to_string ( ) ) ;
541
+ let response = resolver. inner_lookup ( domain_name, Qtype :: A , Qclass :: IN ) . await ;
542
+
543
+ if let Ok ( msg) = response {
544
+ assert_eq ! ( msg. get_header( ) . get_aa( ) , false ) ;
545
+ } else {
546
+ panic ! ( "No response from cache" ) ;
547
+ }
548
+ }
549
+
550
+ /// Test inner lookup without cache
551
+ #[ tokio:: test]
552
+ async fn inner_lookup_with_no_cache ( ) {
553
+ let mut config = ResolverConfig :: default ( ) ;
554
+ config. set_cache_enabled ( false ) ;
555
+
556
+ let mut resolver = AsyncResolver :: new ( config) ;
557
+ resolver. cache . set_max_size ( 1 ) ;
558
+
559
+ let domain_name = DomainName :: new_from_string ( "example.com" . to_string ( ) ) ;
560
+ let a_rdata = ARdata :: new_from_addr ( IpAddr :: from_str ( "93.184.216.34" ) . unwrap ( ) ) ;
561
+ let a_rdata = Rdata :: A ( a_rdata) ;
562
+ let resource_record = ResourceRecord :: new ( a_rdata) ;
563
+
564
+ resolver. cache . add ( domain_name, resource_record) ;
565
+
566
+ let domain_name = DomainName :: new_from_string ( "example.com" . to_string ( ) ) ;
567
+ let response = resolver. inner_lookup ( domain_name, Qtype :: A , Qclass :: IN ) . await ;
568
+
569
+ if let Ok ( msg) = response {
570
+ assert_eq ! ( msg. get_header( ) . get_aa( ) , false ) ;
571
+ } else {
572
+ panic ! ( "No response from nameserver" ) ;
573
+ }
541
574
}
542
575
543
576
/// Test cache data
@@ -546,7 +579,7 @@ mod async_resolver_test {
546
579
let mut resolver = AsyncResolver :: new ( ResolverConfig :: default ( ) ) ;
547
580
resolver. cache . set_max_size ( 1 ) ;
548
581
assert_eq ! ( resolver. cache. is_empty( ) , true ) ;
549
- let _response = resolver. lookup ( "example.com" , "UDP" , "A" , "IN" ) . await ;
582
+ let _response = resolver. lookup ( "example.com" , "UDP" , "A" , "IN" ) . await ;
550
583
assert_eq ! ( resolver. cache. is_cached( DomainName :: new_from_str( "example.com" ) , Rtype :: A ) , true ) ;
551
584
552
585
// TODO: Test special cases from RFC
0 commit comments