1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
mod server;
pub use server::*;

mod zone_provider;
pub use zone_provider::*;

mod metrics;
pub use metrics::*;

#[cfg(test)]
mod tests {
    use adns_proto::{Record, TypeData};
    use adns_zone::Zone;

    use crate::{Server, StaticZoneProvider};

    #[tokio::test]
    async fn test_server() {
        env_logger::Builder::new()
            .parse_env(env_logger::Env::default().default_filter_or("info"))
            .init();
        Server::new(
            "0.0.0.0:5053".parse().unwrap(),
            "0.0.0.0:5053".parse().unwrap(),
            StaticZoneProvider(Zone {
                authoritative: false,
                tsig_keys: Default::default(),
                records: vec![Record::new(
                    "example.com",
                    300,
                    TypeData::A("123.123.123.123".parse().unwrap()),
                )],
                soa: None,
                nameservers: vec![],
                zones: Default::default(),
                class: Default::default(),
                allow_md5_tsig: false,
            }),
        )
        .run()
        .await;
    }
}