1use std::env::args;
2
3use sync_resolve::record::Srv;
4use sync_resolve::{DnsConfig, DnsResolver};
5
6fn main() {
7 let args = args().collect::<Vec<_>>();
8
9 if args.len() != 4 {
10 println!("Usage: {} <service> <proto> <name>", args[0]);
11 println!(" e.g. {} _http _tcp example.com", args[0]);
12 return;
13 }
14
15 let config = match DnsConfig::load_default() {
16 Ok(config) => config,
17 Err(e) => {
18 println!("failed to load system configuration: {}", e);
19 return;
20 }
21 };
22
23 let resolver = match DnsResolver::new(config) {
24 Ok(resolver) => resolver,
25 Err(e) => {
26 println!("failed to create DNS resolver: {}", e);
27 return;
28 }
29 };
30
31 let name = format!("{}.{}.{}", args[1], args[2], args[3]);
32
33 match resolver.resolve_record::<Srv>(&name) {
34 Ok(records) => {
35 for srv in records {
36 println!(
37 "SRV priority={} weight={} port={} target={}",
38 srv.priority, srv.weight, srv.port, srv.target
39 );
40 }
41 }
42 Err(e) => {
43 println!("{}", e);
44 return;
45 }
46 }
47}