summaryrefslogtreecommitdiffstats
path: root/plugins
diff options
context:
space:
mode:
authorinitard <solo@softwareag.com>2022-06-24 13:20:11 +0100
committerinitard <solo@softwareag.com>2022-06-24 15:10:54 +0100
commit35e15064810c79218d3e0a11989f4be1407c06c9 (patch)
tree2b05bace2c29b405dce4ba558e51368ad521e08b /plugins
parentf32847174f7b89bf0083ea29f15857f31981aeab (diff)
fixing configuration plugin panic when payload is wrong
Signed-off-by: initard <solo@softwareag.com>
Diffstat (limited to 'plugins')
-rw-r--r--plugins/c8y_configuration_plugin/src/main.rs53
1 files changed, 31 insertions, 22 deletions
diff --git a/plugins/c8y_configuration_plugin/src/main.rs b/plugins/c8y_configuration_plugin/src/main.rs
index eb4b8272..96d2b020 100644
--- a/plugins/c8y_configuration_plugin/src/main.rs
+++ b/plugins/c8y_configuration_plugin/src/main.rs
@@ -151,31 +151,40 @@ async fn run(
} else {
match payload.split(',').next().unwrap_or_default() {
"524" => {
- let config_download_request =
- SmartRestConfigDownloadRequest::from_smartrest(payload)?;
-
- handle_config_download_request(
- &plugin_config,
- config_download_request,
- tmp_dir.clone(),
- &mut mqtt_client,
- http_client,
- )
- .await
+ let maybe_config_download_request =
+ SmartRestConfigDownloadRequest::from_smartrest(payload);
+ if let Ok(config_download_request) = maybe_config_download_request {
+ handle_config_download_request(
+ &plugin_config,
+ config_download_request,
+ tmp_dir.clone(),
+ &mut mqtt_client,
+ http_client,
+ )
+ .await
+ } else {
+ error!("Incorrect Download SmartREST payload: {}", payload);
+ Ok(())
+ }
}
"526" => {
// retrieve config file upload smartrest request from payload
- let config_upload_request =
- SmartRestConfigUploadRequest::from_smartrest(payload)?;
-
- // handle the config file upload request
- handle_config_upload_request(
- &plugin_config,
- config_upload_request,
- &mut mqtt_client,
- http_client,
- )
- .await
+ let maybe_config_upload_request =
+ SmartRestConfigUploadRequest::from_smartrest(payload);
+
+ if let Ok(config_upload_request) = maybe_config_upload_request {
+ // handle the config file upload request
+ handle_config_upload_request(
+ &plugin_config,
+ config_upload_request,
+ &mut mqtt_client,
+ http_client,
+ )
+ .await
+ } else {
+ error!("Incorrect Upload SmartREST payload: {}", payload);
+ Ok(())
+ }
}
_ => {
// Ignore operation messages not meant for this plugin