add dns support

This commit is contained in:
2025-12-28 12:40:21 +00:00
parent 8adb7d560a
commit 35e6ff8140
11 changed files with 747 additions and 59 deletions

View File

@@ -3,22 +3,34 @@ use std::{error::Error, fs::read_to_string};
use toml::Table;
pub struct ServerConfig {
pub addr: String,
pub pub_addr: String,
pub linstening_addr: String,
pub port: u16,
}
impl ServerConfig {
pub fn get_config(file_name: &str) -> Result<Self, Box<dyn Error>> {
let stored_file = read_to_string(file_name)?.parse::<Table>()?;
let addr = stored_file["server"]["addr"]
let pub_addr = stored_file["server"]["public_addr"]
.as_str()
.ok_or(generate_toml_parser_error_in_field("server addr"))?
.ok_or(generate_toml_parser_error_in_field("server public address"))?
.to_string();
let linstening_addr = stored_file["server"]["listening_addr"]
.as_str()
.ok_or(generate_toml_parser_error_in_field(
"server listening address",
))?
.to_string();
let port = stored_file["server"]["port"]
.as_integer()
.ok_or(generate_toml_parser_error_in_field("server port"))? as u16;
Ok(Self { addr, port })
Ok(Self {
pub_addr,
linstening_addr,
port,
})
}
}