From b8e2fb46fb98d6db452069f98fa9c16647977b8d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C4=99drzej=20Stuczy=C5=84ski?= Date: Tue, 28 Mar 2023 10:44:26 +0100 Subject: [PATCH] added config validation to network requester --- clients/native/src/commands/run.rs | 2 +- clients/socks5/src/commands/run.rs | 2 +- service-providers/network-requester/src/cli/run.rs | 4 ++++ service-providers/network-requester/src/config/mod.rs | 5 +++++ service-providers/network-requester/src/error.rs | 4 ++++ 5 files changed, 15 insertions(+), 2 deletions(-) diff --git a/clients/native/src/commands/run.rs b/clients/native/src/commands/run.rs index b4155101f7..93936a7d24 100644 --- a/clients/native/src/commands/run.rs +++ b/clients/native/src/commands/run.rs @@ -113,7 +113,7 @@ pub(crate) async fn execute(args: &Run) -> Result<(), Box Result<(), Box Result<(), NetworkRequesterError> { } }; + if !config.validate() { + return Err(NetworkRequesterError::ConfigValidationFailure); + } + let override_config_fields = OverrideConfig::from(args.clone()); config = override_config(config, override_config_fields); diff --git a/service-providers/network-requester/src/config/mod.rs b/service-providers/network-requester/src/config/mod.rs index 78ca9aae89..3adc1739fd 100644 --- a/service-providers/network-requester/src/config/mod.rs +++ b/service-providers/network-requester/src/config/mod.rs @@ -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()) diff --git a/service-providers/network-requester/src/error.rs b/service-providers/network-requester/src/error.rs index 3831594846..2a6bd4d5d6 100644 --- a/service-providers/network-requester/src/error.rs +++ b/service-providers/network-requester/src/error.rs @@ -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,