src/config/network.rs: write changes to interfaces.new
This commit is contained in:
parent
2c18efd902
commit
02e36d96ad
|
@ -266,19 +266,27 @@ impl NetworkConfig {
|
|||
}
|
||||
|
||||
pub const NETWORK_INTERFACES_FILENAME: &str = "/etc/network/interfaces";
|
||||
pub const NETWORK_INTERFACES_NEW_FILENAME: &str = "/etc/network/interfaces.new";
|
||||
pub const NETWORK_LOCKFILE: &str = "/var/lock/pve-network.lck";
|
||||
|
||||
|
||||
pub fn config() -> Result<(NetworkConfig, [u8;32]), Error> {
|
||||
let content = match std::fs::read(NETWORK_INTERFACES_FILENAME) {
|
||||
Ok(c) => c,
|
||||
Err(err) => {
|
||||
let content = std::fs::read(NETWORK_INTERFACES_NEW_FILENAME)
|
||||
.or_else(|err| {
|
||||
if err.kind() == std::io::ErrorKind::NotFound {
|
||||
Vec::new()
|
||||
std::fs::read(NETWORK_INTERFACES_FILENAME)
|
||||
.or_else(|err| {
|
||||
if err.kind() == std::io::ErrorKind::NotFound {
|
||||
Ok(Vec::new())
|
||||
} else {
|
||||
bail!("unable to read '{}' - {}", NETWORK_INTERFACES_FILENAME, err);
|
||||
}
|
||||
})
|
||||
} else {
|
||||
bail!("unable to read '{}' - {}", NETWORK_INTERFACES_FILENAME, err);
|
||||
bail!("unable to read '{}' - {}", NETWORK_INTERFACES_NEW_FILENAME, err);
|
||||
}
|
||||
}
|
||||
};
|
||||
})?;
|
||||
|
||||
|
||||
let digest = openssl::sha::sha256(&content);
|
||||
|
||||
|
@ -301,7 +309,7 @@ pub fn save_config(config: &NetworkConfig) -> Result<(), Error> {
|
|||
.owner(nix::unistd::ROOT)
|
||||
.group(nix::unistd::Gid::from_raw(0));
|
||||
|
||||
replace_file(NETWORK_INTERFACES_FILENAME, &raw, options)?;
|
||||
replace_file(NETWORK_INTERFACES_NEW_FILENAME, &raw, options)?;
|
||||
|
||||
Ok(())
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue