feat(opnsense-config): dnsmasq dhcp static mappings (#130)
All checks were successful
Run Check Script / check (pull_request) Successful in 59s
All checks were successful
Run Check Script / check (pull_request) Successful in 59s
Co-authored-by: Jean-Gabriel Gill-Couture <jeangabriel.gc@gmail.com> Co-authored-by: Ian Letourneau <ian@noma.to> Reviewed-on: #130 Reviewed-by: Ian Letourneau <ian@noma.to> Co-authored-by: Jean-Gabriel Gill-Couture <jg@nationtech.io> Co-committed-by: Jean-Gabriel Gill-Couture <jg@nationtech.io>
This commit is contained in:
@@ -1,3 +1,4 @@
|
||||
use crate::config::check_hash;
|
||||
use crate::config::manager::ConfigManager;
|
||||
use crate::error::Error;
|
||||
use async_trait::async_trait;
|
||||
@@ -20,11 +21,17 @@ impl ConfigManager for LocalFileConfigManager {
|
||||
Ok(fs::read_to_string(&self.file_path)?)
|
||||
}
|
||||
|
||||
async fn save_config(&self, content: &str) -> Result<(), Error> {
|
||||
async fn save_config(&self, content: &str, hash: &str) -> Result<(), Error> {
|
||||
let current_content = self.load_as_str().await?;
|
||||
if !check_hash(¤t_content, hash) {
|
||||
return Err(Error::Config(format!(
|
||||
"OPNSense config file changed since loading it! Hash when loading : {hash}"
|
||||
)));
|
||||
}
|
||||
Ok(fs::write(&self.file_path, content)?)
|
||||
}
|
||||
|
||||
async fn apply_new_config(&self, content: &str) -> Result<(), Error> {
|
||||
self.save_config(content).await
|
||||
async fn apply_new_config(&self, content: &str, hash: &str) -> Result<(), Error> {
|
||||
self.save_config(content, hash).await
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user