diff --git a/packages/conformance-tests/src/resolver/dns/scenarios.rs b/packages/conformance-tests/src/resolver/dns/scenarios.rs index 9dcdcbd2..b3c4da7f 100644 --- a/packages/conformance-tests/src/resolver/dns/scenarios.rs +++ b/packages/conformance-tests/src/resolver/dns/scenarios.rs @@ -12,10 +12,11 @@ fn can_resolve() -> Result<()> { let needle_fqdn = FQDN("example.nameservers.com.")?; let network = Network::new()?; - let mut root_ns = NameServer::new(FQDN::ROOT, &network)?; - let mut com_ns = NameServer::new(FQDN::COM, &network)?; + let mut root_ns = NameServer::new(dns_test::peer(), FQDN::ROOT, &network)?; + let mut com_ns = NameServer::new(dns_test::peer(), FQDN::COM, &network)?; - let mut nameservers_ns = NameServer::new(FQDN("nameservers.com.")?, &network)?; + let mut nameservers_ns = + NameServer::new(dns_test::peer(), FQDN("nameservers.com.")?, &network)?; nameservers_ns .a(root_ns.fqdn().clone(), root_ns.ipv4_addr()) .a(com_ns.fqdn().clone(), com_ns.ipv4_addr()) @@ -68,10 +69,11 @@ fn nxdomain() -> Result<()> { let needle_fqdn = FQDN("unicorn.nameservers.com.")?; let network = Network::new()?; - let mut root_ns = NameServer::new(FQDN::ROOT, &network)?; - let mut com_ns = NameServer::new(FQDN::COM, &network)?; + let mut root_ns = NameServer::new(dns_test::peer(), FQDN::ROOT, &network)?; + let mut com_ns = NameServer::new(dns_test::peer(), FQDN::COM, &network)?; - let mut nameservers_ns = NameServer::new(FQDN("nameservers.com.")?, &network)?; + let mut nameservers_ns = + NameServer::new(dns_test::peer(), FQDN("nameservers.com.")?, &network)?; nameservers_ns .a(root_ns.fqdn().clone(), root_ns.ipv4_addr()) .a(com_ns.fqdn().clone(), com_ns.ipv4_addr()); diff --git a/packages/conformance-tests/src/resolver/dnssec/rfc4035/section_4/section_4_1.rs b/packages/conformance-tests/src/resolver/dnssec/rfc4035/section_4/section_4_1.rs index 533e31b3..9772e309 100644 --- a/packages/conformance-tests/src/resolver/dnssec/rfc4035/section_4/section_4_1.rs +++ b/packages/conformance-tests/src/resolver/dnssec/rfc4035/section_4/section_4_1.rs @@ -9,7 +9,7 @@ use dns_test::{Network, Resolver, Result, TrustAnchor, FQDN}; #[ignore] fn edns_support() -> Result<()> { let network = &Network::new()?; - let ns = NameServer::new(FQDN::ROOT, network)?.start()?; + let ns = NameServer::new(dns_test::peer(), FQDN::ROOT, network)?.start()?; let resolver = Resolver::start( dns_test::subject(), &[Root::new(ns.fqdn().clone(), ns.ipv4_addr())], diff --git a/packages/conformance-tests/src/resolver/dnssec/scenarios.rs b/packages/conformance-tests/src/resolver/dnssec/scenarios.rs index 1300d9b4..554e7417 100644 --- a/packages/conformance-tests/src/resolver/dnssec/scenarios.rs +++ b/packages/conformance-tests/src/resolver/dnssec/scenarios.rs @@ -11,7 +11,7 @@ use dns_test::{Network, Resolver, Result, TrustAnchor, FQDN}; #[test] fn can_validate_without_delegation() -> Result<()> { let network = Network::new()?; - let mut ns = NameServer::new(FQDN::ROOT, &network)?; + let mut ns = NameServer::new(dns_test::peer(), FQDN::ROOT, &network)?; ns.a(ns.fqdn().clone(), ns.ipv4_addr()); let ns = ns.sign()?; @@ -55,10 +55,11 @@ fn can_validate_with_delegation() -> Result<()> { let needle_fqdn = FQDN("example.nameservers.com.")?; let network = Network::new()?; - let mut root_ns = NameServer::new(FQDN::ROOT, &network)?; - let mut com_ns = NameServer::new(FQDN::COM, &network)?; + let mut root_ns = NameServer::new(dns_test::peer(), FQDN::ROOT, &network)?; + let mut com_ns = NameServer::new(dns_test::peer(), FQDN::COM, &network)?; - let mut nameservers_ns = NameServer::new(FQDN("nameservers.com.")?, &network)?; + let mut nameservers_ns = + NameServer::new(dns_test::peer(), FQDN("nameservers.com.")?, &network)?; nameservers_ns .a(root_ns.fqdn().clone(), root_ns.ipv4_addr()) .a(com_ns.fqdn().clone(), com_ns.ipv4_addr()) diff --git a/packages/dns-test/src/lib.rs b/packages/dns-test/src/lib.rs index 75ea0f58..8c06730c 100644 --- a/packages/dns-test/src/lib.rs +++ b/packages/dns-test/src/lib.rs @@ -115,3 +115,7 @@ pub fn subject() -> Implementation { Implementation::default() } } + +pub fn peer() -> Implementation { + Implementation::default() +} diff --git a/packages/dns-test/src/name_server.rs b/packages/dns-test/src/name_server.rs index 8033b676..7cc942b0 100644 --- a/packages/dns-test/src/name_server.rs +++ b/packages/dns-test/src/name_server.rs @@ -25,7 +25,12 @@ impl<'a> NameServer<'a, Stopped> { /// - one SOA record, with the primary name server field set to this name server's FQDN /// - one NS record, with this name server's FQDN set as the only available name server for /// the zone - pub fn new(zone: FQDN<'a>, network: &Network) -> Result { + pub fn new(implementation: Implementation, zone: FQDN<'a>, network: &Network) -> Result { + assert!( + matches!(implementation, Implementation::Unbound), + "currently only `unbound` (`nsd`) can be used as a `NameServer`" + ); + let ns_count = ns_count(); let nameserver = primary_ns(ns_count); @@ -301,7 +306,7 @@ mod tests { #[test] fn simplest() -> Result<()> { let network = Network::new()?; - let tld_ns = NameServer::new(FQDN::COM, &network)?.start()?; + let tld_ns = NameServer::new(Implementation::Unbound, FQDN::COM, &network)?.start()?; let ip_addr = tld_ns.ipv4_addr(); let client = Client::new(&network)?; @@ -322,7 +327,7 @@ mod tests { fn with_referral() -> Result<()> { let network = Network::new()?; let expected_ip_addr = Ipv4Addr::new(172, 17, 200, 1); - let mut root_ns = NameServer::new(FQDN::ROOT, &network)?; + let mut root_ns = NameServer::new(Implementation::Unbound, FQDN::ROOT, &network)?; root_ns.referral( FQDN::COM, FQDN("primary.tld-server.com.")?, @@ -351,7 +356,7 @@ mod tests { #[test] fn signed() -> Result<()> { let network = Network::new()?; - let ns = NameServer::new(FQDN::ROOT, &network)?.sign()?; + let ns = NameServer::new(Implementation::Unbound, FQDN::ROOT, &network)?.sign()?; eprintln!("KSK:\n{}", ns.key_signing_key()); eprintln!("ZSK:\n{}", ns.zone_signing_key()); @@ -387,7 +392,7 @@ mod tests { #[test] fn terminate_works() -> Result<()> { let network = Network::new()?; - let ns = NameServer::new(FQDN::ROOT, &network)?.start()?; + let ns = NameServer::new(Implementation::Unbound, FQDN::ROOT, &network)?.start()?; let logs = ns.terminate()?; assert!(logs.contains("nsd starting")); diff --git a/packages/dns-test/src/resolver.rs b/packages/dns-test/src/resolver.rs index 091e59b1..b8d59c22 100644 --- a/packages/dns-test/src/resolver.rs +++ b/packages/dns-test/src/resolver.rs @@ -120,7 +120,7 @@ mod tests { #[test] fn terminate_works() -> Result<()> { let network = Network::new()?; - let ns = NameServer::new(FQDN::ROOT, &network)?.start()?; + let ns = NameServer::new(Implementation::Unbound, FQDN::ROOT, &network)?.start()?; let resolver = Resolver::start( Implementation::Unbound, &[Root::new(ns.fqdn().clone(), ns.ipv4_addr())], diff --git a/packages/dns-test/src/tshark.rs b/packages/dns-test/src/tshark.rs index d07fe7eb..f230d31d 100644 --- a/packages/dns-test/src/tshark.rs +++ b/packages/dns-test/src/tshark.rs @@ -255,7 +255,7 @@ mod tests { #[test] fn nameserver() -> Result<()> { let network = &Network::new()?; - let ns = NameServer::new(FQDN::ROOT, network)?.start()?; + let ns = NameServer::new(Implementation::Unbound, FQDN::ROOT, network)?.start()?; let mut tshark = ns.eavesdrop()?; let client = Client::new(network)?; @@ -291,10 +291,11 @@ mod tests { #[test] fn resolver() -> Result<()> { let network = &Network::new()?; - let mut root_ns = NameServer::new(FQDN::ROOT, network)?; - let mut com_ns = NameServer::new(FQDN::COM, network)?; + let mut root_ns = NameServer::new(Implementation::Unbound, FQDN::ROOT, network)?; + let mut com_ns = NameServer::new(Implementation::Unbound, FQDN::COM, network)?; - let mut nameservers_ns = NameServer::new(FQDN("nameservers.com.")?, network)?; + let mut nameservers_ns = + NameServer::new(Implementation::Unbound, FQDN("nameservers.com.")?, network)?; nameservers_ns .a(root_ns.fqdn().clone(), root_ns.ipv4_addr()) .a(com_ns.fqdn().clone(), com_ns.ipv4_addr());