Skip to content

Commit 8d51d33

Browse files
authored
Merge pull request #175 from erikh/test-fixes
Test fixes related to tracing integration
2 parents 3ae602d + 1a3b5b0 commit 8d51d33

File tree

5 files changed

+42
-39
lines changed

5 files changed

+42
-39
lines changed

Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,7 @@ ZeroNS provides names that are a part of ZeroTier Central's
5353
resolvers that do not match the TLD, similar to `dnsmasq`.
5454
- Tells Central to point all clients that have the "Manage DNS" settings turned
5555
**on** to resolve to it.
56-
- Finally, sets a provided TLD (`.domain` is the default), as well as
56+
- Finally, sets a provided TLD (`.home.arpa` is the default), as well as
5757
configuring `A` (IPv4) and `AAAA` (IPv6) records for:
5858
- Member IDs: `zt-<memberid>.<tld>` will resolve to the IPv4/v6 addresses for
5959
them.

src/init.rs

Lines changed: 12 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -189,7 +189,13 @@ impl Launcher {
189189

190190
let chain = if let Some(chain_cert) = self.chain_cert.clone() {
191191
let pem = std::fs::read(chain_cert)?;
192-
Some(X509::stack_from_pem(&pem)?)
192+
let chain = X509::stack_from_pem(&pem)?;
193+
194+
let mut stack = Stack::new()?;
195+
for cert in chain {
196+
stack.push(cert)?;
197+
}
198+
Some(stack)
193199
} else {
194200
None
195201
};
@@ -201,19 +207,11 @@ impl Launcher {
201207
None
202208
};
203209

204-
let certs = if chain.is_some() {
205-
let mut stack = Stack::new()?;
206-
for cert in chain.unwrap() {
207-
stack.push(cert)?;
208-
}
209-
Some((tls_cert.unwrap(), Some(stack)))
210-
} else if tls_cert.is_some() {
211-
Some((tls_cert.unwrap(), None))
212-
} else {
213-
None
214-
};
215-
216-
tokio::spawn(server.clone().listen(ip, Duration::new(1, 0), certs, key));
210+
tokio::spawn(
211+
server
212+
.clone()
213+
.listen(ip, Duration::new(1, 0), tls_cert, chain, key),
214+
);
217215
}
218216

219217
return Ok(ztauthority);

src/server.rs

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
1-
use tracing::info;
21
use std::{
32
net::{IpAddr, SocketAddr},
43
time::Duration,
54
};
5+
use tracing::info;
66

77
use openssl::{
88
pkey::{PKey, Private},
@@ -28,7 +28,8 @@ impl Server {
2828
self,
2929
ip: IpAddr,
3030
tcp_timeout: Duration,
31-
certs: Option<(X509, Option<Stack<X509>>)>,
31+
certs: Option<X509>,
32+
cert_chain: Option<Stack<X509>>,
3233
key: Option<PKey<Private>>,
3334
) -> Result<(), anyhow::Error> {
3435
let sa = SocketAddr::new(ip, 53);
@@ -39,10 +40,13 @@ impl Server {
3940

4041
if certs.is_some() && key.is_some() {
4142
info!("Configuring DoT Listener");
42-
4343
let tls = TcpListener::bind(SocketAddr::new(ip, 853)).await?;
44-
match sf.register_tls_listener(tls, tcp_timeout, (certs.unwrap(), key.clone().unwrap()))
45-
{
44+
45+
match sf.register_tls_listener(
46+
tls,
47+
tcp_timeout,
48+
((certs.clone().unwrap(), cert_chain), key.clone().unwrap()),
49+
) {
4650
Ok(_) => {}
4751
Err(e) => tracing::error!("Cannot start DoT listener: {}", e),
4852
}

tests/integration.rs

Lines changed: 18 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -5,16 +5,16 @@ mod service;
55
mod sixplane {
66
use std::{net::IpAddr, path::Path, str::FromStr, time::Duration};
77

8-
use tracing::info;
98
use rand::prelude::SliceRandom;
9+
use tracing::info;
1010
use trust_dns_resolver::{IntoName, Name};
1111

1212
use crate::service::{HostsType, Lookup, Service, ServiceConfig, ToIPv6Vec};
1313
use zeronsd::{addresses::Calculator, hosts::parse_hosts, utils::init_logger};
1414

1515
#[tokio::test(flavor = "multi_thread")]
1616
async fn test_battery_single_domain() {
17-
init_logger(tracing::LevelFilter::Error);
17+
init_logger(Some(tracing::Level::ERROR));
1818
let service = Service::new(ServiceConfig::default().network_filename("6plane-only")).await;
1919

2020
let record = service.member_record();
@@ -33,7 +33,7 @@ mod sixplane {
3333

3434
#[tokio::test(flavor = "multi_thread")]
3535
async fn test_battery_single_domain_named() {
36-
init_logger(tracing::LevelFilter::Error);
36+
init_logger(Some(tracing::Level::ERROR));
3737
let update_interval = Duration::new(2, 0);
3838
let service = Service::new(
3939
ServiceConfig::default()
@@ -63,7 +63,7 @@ mod sixplane {
6363

6464
#[tokio::test(flavor = "multi_thread")]
6565
async fn test_battery_multi_domain_hosts_file() {
66-
init_logger(tracing::LevelFilter::Error);
66+
init_logger(Some(tracing::Level::ERROR));
6767
let service = Service::new(
6868
ServiceConfig::default()
6969
.hosts(HostsType::Fixture("basic-ipv6"))
@@ -100,7 +100,7 @@ mod sixplane {
100100

101101
#[tokio::test(flavor = "multi_thread")]
102102
async fn test_wildcard_central() {
103-
init_logger(tracing::LevelFilter::Error);
103+
init_logger(Some(tracing::Level::ERROR));
104104
let service = Service::new(
105105
ServiceConfig::default()
106106
.update_interval(Some(Duration::new(5, 0)))
@@ -151,16 +151,16 @@ mod sixplane {
151151
mod rfc4193 {
152152
use std::{net::IpAddr, path::Path, str::FromStr, time::Duration};
153153

154-
use tracing::info;
155154
use rand::{prelude::SliceRandom, thread_rng};
155+
use tracing::info;
156156
use trust_dns_resolver::{IntoName, Name};
157157

158158
use crate::service::{HostsType, Lookup, Service, ServiceConfig, ToIPv6Vec, ToPTRVec};
159159
use zeronsd::{addresses::Calculator, hosts::parse_hosts, utils::init_logger};
160160

161161
#[tokio::test(flavor = "multi_thread")]
162162
async fn test_battery_single_domain() {
163-
init_logger(tracing::LevelFilter::Error);
163+
init_logger(Some(tracing::Level::ERROR));
164164
let service = Service::new(ServiceConfig::default().network_filename("rfc4193-only")).await;
165165

166166
let record = service.member_record();
@@ -239,7 +239,7 @@ mod rfc4193 {
239239

240240
#[tokio::test(flavor = "multi_thread")]
241241
async fn test_battery_single_domain_named() {
242-
init_logger(tracing::LevelFilter::Error);
242+
init_logger(Some(tracing::Level::ERROR));
243243
let update_interval = Duration::new(2, 0);
244244
let service = Service::new(
245245
ServiceConfig::default()
@@ -288,7 +288,7 @@ mod rfc4193 {
288288

289289
#[tokio::test(flavor = "multi_thread")]
290290
async fn test_battery_multi_domain_hosts_file() {
291-
init_logger(tracing::LevelFilter::Error);
291+
init_logger(Some(tracing::Level::ERROR));
292292
let service = Service::new(
293293
ServiceConfig::default()
294294
.hosts(HostsType::Fixture("basic-ipv6"))
@@ -325,7 +325,7 @@ mod rfc4193 {
325325

326326
#[tokio::test(flavor = "multi_thread")]
327327
async fn test_wildcard_central() {
328-
init_logger(tracing::LevelFilter::Error);
328+
init_logger(Some(tracing::Level::ERROR));
329329
let service = Service::new(
330330
ServiceConfig::default()
331331
.update_interval(Some(Duration::new(5, 0)))
@@ -376,8 +376,8 @@ mod rfc4193 {
376376
mod ipv4 {
377377
use std::time::Duration;
378378

379-
use tracing::info;
380379
use std::str::FromStr;
380+
use tracing::info;
381381
use trust_dns_resolver::Name;
382382

383383
use zeronsd::utils::init_logger;
@@ -386,7 +386,7 @@ mod ipv4 {
386386

387387
#[tokio::test(flavor = "multi_thread")]
388388
async fn test_wildcard_central() {
389-
init_logger(tracing::LevelFilter::Error);
389+
init_logger(Some(tracing::Level::ERROR));
390390
let service = Service::new(
391391
ServiceConfig::default()
392392
.update_interval(Some(Duration::new(5, 0)))
@@ -436,7 +436,7 @@ mod ipv4 {
436436
async fn test_battery_single_domain() {
437437
use rand::{seq::SliceRandom, thread_rng};
438438

439-
init_logger(tracing::LevelFilter::Error);
439+
init_logger(Some(tracing::Level::ERROR));
440440
let service = Service::new(ServiceConfig::default().ips(Some(vec![
441441
"172.16.240.2",
442442
"172.16.240.3",
@@ -520,7 +520,7 @@ mod ipv4 {
520520

521521
#[tokio::test(flavor = "multi_thread")]
522522
async fn test_battery_single_domain_named() {
523-
init_logger(tracing::LevelFilter::Error);
523+
init_logger(Some(tracing::Level::ERROR));
524524
let update_interval = Duration::new(2, 0);
525525
let service = Service::new(
526526
ServiceConfig::default()
@@ -569,8 +569,8 @@ mod ipv4 {
569569
}
570570

571571
mod all {
572-
use tracing::info;
573572
use rand::prelude::SliceRandom;
573+
use tracing::info;
574574
use trust_dns_resolver::{IntoName, Name};
575575

576576
use zeronsd::{
@@ -590,7 +590,7 @@ mod all {
590590

591591
#[tokio::test(flavor = "multi_thread")]
592592
async fn test_battery_multi_domain_hosts_file() {
593-
init_logger(tracing::LevelFilter::Error);
593+
init_logger(Some(tracing::Level::ERROR));
594594
let ips = vec!["172.16.240.2", "172.16.240.3", "172.16.240.4"];
595595
let service = Service::new(
596596
ServiceConfig::default()
@@ -630,7 +630,7 @@ mod all {
630630

631631
#[tokio::test(flavor = "multi_thread")]
632632
async fn test_hosts_file_reloading() {
633-
init_logger(tracing::LevelFilter::Error);
633+
init_logger(Some(tracing::Level::ERROR));
634634
let hosts_path = "/tmp/zeronsd-test-hosts";
635635
std::fs::write(hosts_path, "127.0.0.2 islay\n::2 islay\n").unwrap();
636636
let service = Service::new(
@@ -686,7 +686,7 @@ async fn test_get_listen_ip() -> Result<(), anyhow::Error> {
686686
use service::*;
687687
use zeronsd::utils::*;
688688

689-
init_logger(tracing::LevelFilter::Error);
689+
init_logger(Some(tracing::Level::ERROR));
690690

691691
let tn = TestNetwork::new("basic-ipv4", &mut TestContext::default().await)
692692
.await

tests/service.rs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,9 +17,9 @@ use std::{
1717
use async_trait::async_trait;
1818
use ipnetwork::IpNetwork;
1919
use lazy_static::lazy_static;
20-
use tracing::{info, warn};
2120
use rand::prelude::{IteratorRandom, SliceRandom};
2221
use tokio::{sync::Mutex, task::JoinHandle};
22+
use tracing::{info, warn};
2323
use trust_dns_resolver::{
2424
config::{NameServerConfig, ResolverConfig, ResolverOpts},
2525
name_server::{GenericConnection, GenericConnectionProvider, TokioRuntime},
@@ -506,6 +506,7 @@ async fn create_listeners(
506506
Duration::new(0, 500),
507507
None,
508508
None,
509+
None,
509510
)));
510511
}
511512

0 commit comments

Comments
 (0)