add dns support
This commit is contained in:
@@ -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,
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user