cdns-rs 1.2.2

A native Sync/Async Rust implementation of client DNS resolver.
Documentation
use std::{net::IpAddr, sync::Arc};

use cdns_rs::{sync::{QDns, ResolveConfig}, DnsRdata, QuerySetup};


fn main()
{

    let cfg = "nameserver 1.1.1.1#@443#https://cloudflare-dns.com/dns-query \n\
    options use-vc single-request";

    let cust = Arc::new(ResolveConfig::custom_config(cfg).unwrap());


    // forming request
    let dns = QDns::make_a_aaaa_request(Some(cust), "google.com", QuerySetup::default()).unwrap();

    // sending request and receiving results
    let res = dns.query();
  
    // extracting data
    let mut iplist: Vec<IpAddr> = vec![];

    
    let recs = res.get_ok_or_error().unwrap();

    for dnsr in recs.into_iter()
    {
        for resp in dnsr.into_iter()
        {
            match resp.borrow_rdata()
            {
                DnsRdata::A(ip) => 
                    iplist.push(IpAddr::from(ip.ip)),
                DnsRdata::AAAA( ip ) => 
                    iplist.push(IpAddr::from(ip.ip)),
                _ => continue,
            }
        }
    }

    println!("A/AAAA:");
    for a in iplist
    {
        println!("\t{}", a);
    }

    // a, aaaa
    /*let res_a = request::resolve_fqdn("google.com", Some(cust.clone())).unwrap();


    let elapsed = now.elapsed();
    println!("Elapsed: {:.2?}", elapsed);

    println!("A/AAAA:");
    for a in res_a
    {
        println!("\t{}", a);
    }
*/
    return;
}