enable multiple dns servers
This commit is contained in:
@@ -1,36 +1,46 @@
|
||||
use std::fs::read_to_string;
|
||||
use toml::Table;
|
||||
|
||||
pub struct KeyData {
|
||||
pub struct ZoneConnectionData {
|
||||
pub conection_str: String,
|
||||
pub key_name: String,
|
||||
pub key: String,
|
||||
}
|
||||
|
||||
pub struct ZoneData {
|
||||
pub struct ServerZonesConnection {
|
||||
pub root_domain: String,
|
||||
pub conection_str: String,
|
||||
pub servers_data: Vec<ZoneConnectionData>,
|
||||
}
|
||||
|
||||
impl KeyData {
|
||||
pub fn get_config(file_name: &String) -> Self {
|
||||
impl ZoneConnectionData {
|
||||
pub fn get_config(file_name: &String) -> Vec<Self> {
|
||||
let mut ret = Vec::new();
|
||||
let key_toml = read_to_string(file_name).unwrap().parse::<Table>().unwrap();
|
||||
let name: String = key_toml["key"]["name"].as_str().unwrap().to_string();
|
||||
let value: String = key_toml["key"]["value"].as_str().unwrap().to_string();
|
||||
Self {
|
||||
key_name: name,
|
||||
key: value
|
||||
for servers in key_toml["server"].as_array().unwrap() {
|
||||
let conection_str: String = servers["connection_str"].as_str().unwrap().to_string();
|
||||
let key_name: String = servers["key"]["name"].as_str().unwrap().to_string();
|
||||
let key: String = servers["key"]["value"].as_str().unwrap().to_string();
|
||||
ret.push(Self {
|
||||
conection_str,
|
||||
key_name,
|
||||
key,
|
||||
});
|
||||
}
|
||||
ret
|
||||
}
|
||||
}
|
||||
|
||||
impl ZoneData {
|
||||
impl ServerZonesConnection {
|
||||
pub fn get_config(file_name: &String) -> Self {
|
||||
let key_toml = read_to_string(file_name).unwrap().parse::<Table>().unwrap();
|
||||
let root_domain: String = key_toml["zone"]["root_domain"].as_str().unwrap().to_string();
|
||||
let conection_str: String = key_toml["zone"]["conection_str"].as_str().unwrap().to_string();
|
||||
let root_domain: String = key_toml["zone"]["root_domain"]
|
||||
.as_str()
|
||||
.unwrap()
|
||||
.to_string();
|
||||
|
||||
Self {
|
||||
root_domain,
|
||||
conection_str
|
||||
servers_data: ZoneConnectionData::get_config(file_name),
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user