linux's dns hook is ok
This commit is contained in:
parent
777d3bbc63
commit
c5f5ea433a
@ -35,6 +35,7 @@ use sdlan_sn_rs::utils::Mac;
|
||||
use sdlan_sn_rs::utils::Result;
|
||||
use sdlan_sn_rs::utils::create_or_load_uuid;
|
||||
use tokio::runtime::Runtime;
|
||||
use tracing::debug;
|
||||
use tracing::error;
|
||||
|
||||
use std::net::ToSocketAddrs;
|
||||
@ -248,13 +249,14 @@ async fn daemonize_me(
|
||||
|
||||
let mut started = true;
|
||||
*/
|
||||
|
||||
println!("waiting for ctrl-c");
|
||||
match tokio::signal::ctrl_c().await {
|
||||
Ok(()) => {
|
||||
edge.quic_endpoint.close(0u32.into(), "bye".as_bytes());
|
||||
println!("quic is quitting");
|
||||
delete_pid_file();
|
||||
let _ = restore_dns();
|
||||
debug!("restored dns");
|
||||
}
|
||||
Err(err) => {
|
||||
eprintln!("failed to listen for shutdown signal: {}", err);
|
||||
@ -360,7 +362,9 @@ fn main() {
|
||||
}
|
||||
};
|
||||
let result = unsafe {
|
||||
kill(pid, SIGTERM)
|
||||
use libc::SIGINT;
|
||||
|
||||
kill(pid, SIGINT)
|
||||
};
|
||||
if result != 0 {
|
||||
let err = io::Error::last_os_error();
|
||||
|
||||
@ -858,6 +858,7 @@ pub fn get_install_channel() -> String {
|
||||
}
|
||||
|
||||
fn check_has_resolvectl() -> bool {
|
||||
return false;
|
||||
let res = Command::new("resolvectl")
|
||||
.arg("status")
|
||||
.output();
|
||||
@ -947,10 +948,15 @@ pub fn modify_resolv_conf(new_nameservers: &[String], search_domain: &str, keep_
|
||||
let reader = BufReader::new(file);
|
||||
let mut lines = Vec::new();
|
||||
|
||||
for ns in new_nameservers {
|
||||
lines.push(format!("nameserver {}", ns))
|
||||
}
|
||||
/*
|
||||
let mut inserted = false;
|
||||
let mut encounted_nameserver = false;
|
||||
let mut search_added = false;
|
||||
|
||||
|
||||
for line in reader.lines() {
|
||||
let line = line?;
|
||||
let trimmed = line.trim();
|
||||
@ -982,6 +988,7 @@ pub fn modify_resolv_conf(new_nameservers: &[String], search_domain: &str, keep_
|
||||
if !search_added {
|
||||
lines.push(format!("search {}", search_domain));
|
||||
}
|
||||
*/
|
||||
|
||||
// 原子写入:先写临时文件
|
||||
let tmp_dir = Path::new("/etc");
|
||||
@ -992,6 +999,8 @@ pub fn modify_resolv_conf(new_nameservers: &[String], search_domain: &str, keep_
|
||||
}
|
||||
tmp_file.flush()?;
|
||||
|
||||
debug!("added to /etc/resolve.conf: {:?}", lines);
|
||||
|
||||
// 设置权限
|
||||
fs::set_permissions(&tmp_path, perms)?;
|
||||
#[cfg(unix)]
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user