loop {
let time_beginning_loop = time::Instant::now();
- if let Err(err) = check_and_update_dns(&config.api_key, &config.fqdn, &config.domains, config.ttl) {
- println!("!! Error: {}", err);
+ if let Err(err) = check_and_update_dns(&config.api_key, &config.domains, config.ttl) {
+ println!("!! {}", err);
}
let elapsed = time::Instant::now() - time_beginning_loop;
}
}
-fn check_and_update_dns(api_key: &str, fqdn: &str, domains: &Vec<String>, ttl: i32) -> Result<()> {
+fn check_and_update_dns(api_key: &str, domains: &Vec<(String, String)>, ttl: i32) -> Result<()> {
let real_ip = get_real_ip()?;
- for domain in domains {
- let current_ip = get_current_record_ip(api_key, domain, fqdn)?;
+ for (hostname, domain) in domains {
+ let current_ip = get_current_record_ip(api_key, hostname, domain)?;
if real_ip != current_ip {
println!("IP addresses don't match for domain {}: real = {}, dns = {}. Renewing DNS...", domain, real_ip, current_ip);
- update_record_ip(api_key, domain, fqdn, real_ip, ttl)?;
+ update_record_ip(api_key, hostname, domain, real_ip, ttl)?;
println!("Renewing of {} successfully", domain);
}
}
_ => Err(Box::new(Error { message: String::from("Can't parse IPv4 from ipify") }))
}
} else {
- Err(Box::new(Error { message: format!("Request unsuccessful: {:#?}", resp) }))
+ Err(Box::new(Error { message: format!("Request unsuccessful to {}: {:#?}", url, resp) }))
},
Err(error) => {
- Err(Box::new(Error { message: format!("Error during request: {:?}", error) }))
+ Err(Box::new(Error { message: format!("Error during request to {}: {:?}", url, error) }))
}
}
}
let request_builder =
match method {
- Method::Put(body) => client.put(url).body(body),
- Method::Get => client.get(url)
+ Method::Put(body) => client.put(&url).body(body),
+ Method::Get => client.get(&url)
};
match request_builder.header("Authorization", format!("Apikey {}", api_key)).send() {
let content = resp.text().unwrap();
Ok(serde_json::from_str(&content).unwrap())
} else {
- Err(Box::new(Error { message: format!("Request unsuccessful: {:#?}", resp) }))
+ Err(Box::new(Error { message: format!("Request unsuccessful to {}: {:#?}", &url, resp) }))
},
Err(error) =>
- Err(Box::new(Error { message: format!("Error during request: {:?}", error) }))
+ Err(Box::new(Error { message: format!("Error during request to {}: {:?}", &url, error) }))
}
}