added config validation to network requester

This commit is contained in:
Jędrzej Stuczyński
2023-03-28 10:44:26 +01:00
parent eff931f9ca
commit b8e2fb46fb
5 changed files with 15 additions and 2 deletions
+1 -1
View File
@@ -113,7 +113,7 @@ pub(crate) async fn execute(args: &Run) -> Result<(), Box<dyn Error + Send + Syn
};
if !config.validate() {
return Err(Box::new(ClientError::ConfigValidationFailure))
return Err(Box::new(ClientError::ConfigValidationFailure));
}
let override_config_fields = OverrideConfig::from(args.clone());
+1 -1
View File
@@ -123,7 +123,7 @@ pub(crate) async fn execute(args: &Run) -> Result<(), Box<dyn std::error::Error
};
if !config.validate() {
return Err(Box::new(Socks5ClientError::ConfigValidationFailure))
return Err(Box::new(Socks5ClientError::ConfigValidationFailure));
}
let override_config_fields = OverrideConfig::from(args.clone());
@@ -126,6 +126,10 @@ pub(crate) async fn execute(args: &Run) -> Result<(), NetworkRequesterError> {
}
};
if !config.validate() {
return Err(NetworkRequesterError::ConfigValidationFailure);
}
let override_config_fields = OverrideConfig::from(args.clone());
config = override_config(config, override_config_fields);
@@ -119,6 +119,11 @@ impl Config {
cfg
}
pub fn validate(&self) -> bool {
// no other sections have explicit requirements (yet)
self.base.validate()
}
// getters
pub fn get_config_file_save_location(&self) -> PathBuf {
self.config_directory().join(Self::config_file_name())
@@ -21,6 +21,10 @@ pub enum NetworkRequesterError {
#[error("failed to load configuration file: {0}")]
FailedToLoadConfig(String),
// TODO: add more details here
#[error("Failed to validate the loaded config")]
ConfigValidationFailure,
#[error("failed local version check, client and config mismatch")]
FailedLocalVersionCheck,